【测试】性能测试、负载测试和压力测试的区别

目录

    • 负载测试和压力测试的区别
    • 性能测试
    • 负载测试
    • 压力测试
    • 举例

一直以来,都对性能测试中的负载测试和压力测试觉得很混淆,感觉2个概念很像,不知道区别在哪里。这次专门找了很多资料,总结如下:

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

负载测试Load test:在[不同负载]下,给系统造成的负荷及系统响应的时间;
负载测试是测试软件本身最大所能承受的性能测试;
压力测试stress test: 在『高负载』下,长时间连续运行系统给系统性能造成的影响;
压力测试就是一种破坏性的性能测试.

性能测试

性能测试通常收集所有和测试有关的所有性能,被不同人在不同场合下进行使用。 关注点:how much和how fast
性能测试是为了确定系统的某个方面在特定工作负载下的执行速度。
性能测试可以用于不同的目的,例如,它可以证明系统满足性能标准;它可以比较两个系统,
找出哪个性能更好;或者它可以测量系统的哪个部分或工作负载导致系统性能不佳

负载测试

负载测试(load)是一种性能测试,目标是测试在不同负载下的相关性能指标,以确定系统瓶颈、、、哪些因素会影响系统性能
关注点:how much

实际中我们常从比较小的负载开始,逐渐增加模拟用户的数量(增加负载), 观察不同负载下应用程序响应时间、所耗资源,直到超时或关键资源耗尽,这就是所说的负载测试,它是测试系统的不同负载情况下的性能指标。

压力测试

压力测试(stress),也称强度测试,也是一种性能测试,目标是测试在一定的负载(极限)下系统长时间运行的稳定性;
压力测试引入超出正常操作能力的测试,通常到了临界点,以便观察结果,强调在重载下的健壮性、可用性和错误处理。
压力测试降低了系统或其任何部件在意外事件(高工作负载峰值、资源饱和、数据损坏等)发生时崩溃的可能性.

这个负载不一定是应用系统本身造成的。比如我们经常利用脚本或工具事先吃掉服务器的一部分cpu、内存或带宽等,创造出一定的负载环境并测试被测应用系统在此环境下的事物处理能力,响应时间等等。压力测试尤其关注大业务量情况下长时间运行系统性能的变化(例如是否反应变慢、是否会内存泄漏导致系统逐渐崩溃、是否能恢复);压力测试是测试系统的限制和故障恢复能力,它包括两种情况:
  1.稳定性压力测试:在选定的压力值下,长时间持续运行。通过这类压力测试,可以考察各项性能指标是否在指定范围内,有无内存泄漏、有无功能性故障等;
  2.破坏性压力测试:在稳定性压力测试中可能会出现一些问题,如系统性能明显降低,但很难暴露出其真实的原因。通过破坏性不断加压的手段,往往能快速造成系统的崩溃或让问题明显的暴露出来;

举例

这儿有个服务员,对应咱们的应用系统吧。  
压力测试就是给这位服务器外部压力,比如长时间不让他休息,不给开工资等,看看服务员会不会开小差(无法及时响应请求),或者罢工(宕机)之类的。
  负载测试就是在单位时间内逐步加大这位服务员的工作量,看看此服务员在不同的工作量下完成服务的速度和质量,从而了解到该服务员的工作能力。

你可能感兴趣的:(测试技能)