压力测试往往强调的是某性能指标的最大值,可能已经超过实际的期望值,可能已经是不合理的区间了。
负载测试强调的是性能指标在期望区间内。
关于这两个测试的说法网上存在各种相互冲突的说法,百度百科和知乎的都不一样,建议采用百度百科的解释。
并发测试只有特定的应用场景才使用,比如抢红包,主要测试线程锁和资源争抢冲突的。
主要区别是,性质不同、目的不同、特点不同,具体如下:
一、性质不同
1、压力测试
压力测试是在强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下 *** 作行为,从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力。压力测试分为高负载下的长时间(如24小时以上)的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试。压力测试可以被看作是负载测试的一种,即高负载下的负载测试,或者说压力测试采用负载测试技术。
2、负载测试
负载测试是模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等,以检验系统的行为和特性,以发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。负载测试更多地体现了一种方法或一种技术。
3、并发测试
指当测试多用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题,如内存泄漏、线程锁、资源争用问题,几乎所有的性能测试都会涉及并发测试。
二、目的不同
1、压力测试
目的是在软件投入使用以前或软件负载达到极限以前,通过执行可重复的负载测试,了解系统可靠性、性能瓶颈等,以提高软件系统的可靠性、稳定性,减少系统的宕机时间和因此带来的损失。
2、负载测试
负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征。例如,响应时间、事务处理速率和其他与时间相关的方面。
3、并发测试
测试目的并非为了获得性能指标,而是为了发现并发引起的问题。
三、特点不同
1、压力测试
压力测试通常是在高负载情况下来对系统的稳定性进行测试,更有效地发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患等。
2、负载测试
负载测试是通过改变系统负载方式、增加负载等来发现系统中所存在的性能问题。
3、并发测试
在具体的性能测试工作中,并发用户往往都是借助工具来模拟的,例如LoadRunner性能测试工具中叫做虚拟用户,因为实际情况中去实现同时多人并发的测试环境要求比较高而测试成本高、测试时间也是比较长。
参考资料来源:百度百科-压力测试
参考资料来源:百度百科-负载测试
参考资料来源:百度百科-并发测试
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)