学习

负载测试和压力测试之间的区别

为了确保你的应用在任何情况下都能可靠地运行,你可以设置一系列的测试。测试可以帮助您尽早发现日常场景中可能出现的任何潜在故障。每个测试都可以配置为测量和分析应用程序的特定参数,以满足您定义的目标。

什么是负载测试?

负载测试是验证应用程序或网站的响应时间的过程。它模拟用户在正常和较重负载下的行为。

为什么要运行负载测试?

一些应用程序和网站是为高流量和高负载而设计的。为了避免生产失败,必须采用主动的负载测试方法。这可以确保你的应用程序可以处理所需的活动量。负载测试允许您:

  • 发现通过其他测试方法无法检测到的bug。例如,内存管理/泄漏、缓冲区溢出等。
  • 确保您的应用程序可以运行在期望的性能水平-通过性能测试确定
  • 确定应用程序的操作能力
  • 验证当前的基础设施可以维持应用程序
  • 确定应用程序可以支持的最大用户数量;确定你可以设置的可伸缩性级别,以便让更多人访问应用程序

什么时候应该运行负载测试?

一旦你知道你的应用或网站可以支持多少用户,在你遇到任何速度或操作问题之前,就应该进行负载测试。负载测试在任何开发过程中都是必不可少的一步,因为你可以隔离系统的不同部分进行测试;定义一系列实际的用户场景。

在进行负载测试时,还可以确定负载的行为。例如,它允许您定义虚拟用户的地理来源以及负载如何在系统内移动/增长。

负载测试必须在应用程序的开发阶段执行。在应用的整个生命周期中,还必须定期重新访问它,以确保一切都能正常工作。理想情况下,负载测试应该是测试的一部分持续集成循环,使它自动发生。

什么是压力测试?

压力测试也被称为阻力测试。它决定了系统的稳定性和健壮性。要做到这一点,它产生的操作负载比系统正常运行所需的负载大几倍。

为什么要进行压力测试?

你的应用或网站可能会经历活动高峰,无论是计划中的还是计划外的。当发生这种情况时,应用程序上生成的负载可能会超过其设计定期处理的水平。压力测试可以帮助你预测这种情况,帮助你:

  • 通过评估应用对高负载情况的响应来避免失败
  • 启动前在系统中收集数据
  • 消除影响系统安全性的意外故障的可能性

什么时候应该进行压力测试?

你们公司会出现在电视上吗?是促销活动即将到来,还是黑色星期五即将来临?如果你的回答是肯定的,那么是时候做一个压力测试了。这种类型的测试应该是应用程序开发期间的标准测试,以及可能导致活动突然增加的事件之前的测试。

我们强烈建议定期进行阻力测试,以了解系统的持久能力。它使您能够预测流量峰值,从而可以主动地寻找解决方案(而不是在问题发生时耗尽资源来修复问题)。

什么是性能测试?

性能测试用于确定计算机、网络或设备的速度。测试环境应该表示模拟典型用户行为和活动的条件。

为什么要运行性能测试?

在发布应用程序或网站之前,你必须知道它在正常情况下可以正常运行。将一个有缺陷的产品推向市场可能会损害你的公司形象,阻碍开发时间。性能测试通过以下方式帮助您避免这些问题:

  • 验证您的应用程序在几种不同情况下正确工作
  • 验证您的应用程序是否符合公司的性能要求
  • 根据需要检测、分析和修复性能问题
  • 确保您的硬件能够处理预期的负载
  • 帮助您围绕预期的未来需求规划功能

什么时候应该运行性能测试?

性能测试无论何时你想检查你的应用程序或网站的性能。它还可以用于监视服务器、数据库和网络。每次发生系统更改时都应该重复进行性能测试,以确保任何更改都不会对其性能产生不利影响。理想情况下,性能测试应该成为持续集成过程的一部分,以减少手动干预的需要。

性能测试

怎么啦?定义并运行必要测试以检查应用程序或系统性能的方法。

为什么?为你的应用和网站定义标准和基准数据。

目标(年代)提供应用程序在正常操作条件下的行为。

测量的是什么?资源消耗、产品可用性和可靠性。

负载限制在哪里?低于和高于断点。

样品测试验证并发用户、HTTP连接和适当的响应时间。

负载测试

怎么啦?性能测试的子类别。

为什么?建立系统的上限,设置应用的SLA,检查系统对高负载的管理情况。确保应用程序可以支持特定数量的同时用户。

目标(年代)让你看到一个应用程序如何响应,当负载增加到一个断点。

测量的是什么?峰值性能水平、所需服务器数量和应用程序响应时间。

负载限制在哪里?等于断点。

样品测试一个文字处理器通过改变大量的数据。
打印机通过传输大量数据。邮件服务器同时使用大量用户。

压力测试

怎么啦?性能测试的子类别。

为什么?了解系统在极端负载下的行为,以及系统如何从故障中恢复。它还可以让您看到,当系统超出预期容量时,哪些组件开始变慢。

目标(年代)确保服务器在一段时间内面对高负载时不会崩溃。识别系统瓶颈以突出可能的故障点。

测量的是什么?响应时间,应用程序的整体稳定性。

负载限制在哪里?超出了临界点。

样品测试关闭/重启大型网络的端口。

您应该如何管理测试的运行?

性能测试应该是开发过程中的第一个计划测试。您可以定义几个同时存在的用户,这些用户已知是由基础设施支持的,还可以定义与系统的常规使用相关的标准。然后,从该测试收集的数据可以用作其他测试的参考点,包括负载和压力测试(因为它决定了基准测试的数量,例如平均连接速度、平均延迟和平均下载时间)。

一旦确定了一些基本的性能值,就可以进行负载测试了。用户数量可以逐渐增加,以达到临界阈值——错误和系统故障开始出现的点。负载测试应该在一段时间内进行。此测试旨在验证负载水平接近临界点时应用程序的稳定性。

在通过负载测试确定断点之后,继续增加系统上的负载以执行压力测试。逐渐增加负载水平有助于检测不正常工作的组件。这突出了出现的问题类型,并确定了系统中需要加强的部分。

负载和电阻:附加测试

可以安排负载测试来执行系统内任意数量的上游请求,以测试其在处理并发请求时的功能。这确保了系统可以处理预测的交通量。目标是证明系统可以管理预期的容量,可能只有轻微的性能下降。因此,测试人员必须预先确定跨不同功能的可接受的性能下降水平。这些值将作为评估测试应用程序成功与否的基线。

阻力测试旨在增加应用程序上超过定义断点的并发请求数量(直到完全系统故障)。简单地说,它故意使资源过载以达到无法运行的状态,观察系统如何管理这种可能性以及如何恢复。

虽然它们是不同的测试,目的不同,但负载测试和压力测试是紧密相连的。压力测试可以被认为是负载测试的扩展,因为它旨在推动系统超越负载测试期间定义的限制。在压力测试期间突出显示的第一个失败将与负载测试中的失败相同。

Baidu
map