目录:导读
前言
负载与压力测试
1、负载测试:是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试;
2、压力测试:是通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并以此来获得系统能提供的最大服务级别的测试。
例子分析1:
登录接口,我们先10个用户访问,然后100个用户访问,然后1000个用户访问,关注程序的响应时间,所耗资源,直到超时或关键资源耗尽。
压力测试:是指程序长时间运行的稳定性。
例子分析2:
程序,在运行1天,1个月,一年关注他们的各项指标是否都在正常指标内,是否会内存溢出,是否出现功能性故障等等。
压力测试分为稳定性测试和破坏性测试。
负载/压力的区别
负载测试是不关注稳定性的,压力测试是关注稳定性的。
性能测试中负载测试,压力测试有什么区别?
对于性能测试,负载测试,压力测试的区别,之前总自认为是清楚的,后来被人问住了,才发现还差的远。这儿网上摘了一些内容,加上自己的理解,算是弄清楚了吧。特此记下,避免忘了。如有错误之处,还望指正。
性能测试(或称多用户并发性能测试)、负载测试、强度测试、容量测试是性能测试领域里的几个方面,但是概念很容易混淆。
性能测试(Performance Test):通常收集所有和测试有关的所有性能,被不同人在不同场合下进行使用,关注点:how much和how fast。
1、负载测试(Load Test):负载测试是一种性能测试,指数据在超负荷环境中运行,程序是否能够承担,关注点:how much。
2、压力测试(Stress Test): 压力测试(又叫强度测试)也是一种性能测试,它在系统资源特别低的情况下软件系统运行情况,目的是找到系统在哪里失效以及如何失效的地方。
3、极限测试 Extreme testing:在过量用户下的负载测试 Hammer testing:连续执行所有能做的操作。
4、容量测试(Volume Test):确定系统可处理同时在线的最大用户数 关注点:how much(而不是how fast) 容量测试,通常和数据库有关,容量和负载的区别在于:容量关注的是大容量,而不需要关注使用中的实际表现。
可能大家觉得性能测试、负载测试和强度测试比较混淆。
没错,这三个概念是比较容易使人糊涂。负载测试和压力测试,都属于性能测试的子集。
性能测试,表示在一个给定的基准下,能执行的最好情况。
负载测试,也是性能测试,但是他是在不同的负载下的。
压力测试,是在较高强度情况下的性能测试。
性能测试是动力,负载测试载重,压力测试强度。
压力测试stress test:是在一定的『负荷条件』下,长时间连续运行系统给系统性能造成的影响。
负载测试Load test:在一定的『工作负荷』下,给系统造成的负荷及系统响应的时间。
这儿我加了括号强调一下压力测试与负载测试的区别。
负载测试通常描述一种特定类型的压力测试——逐步增加用户数量或用户请求来对系统(程序)进行加压。比如现实中有个系统提供在线查询服务,那我们从比较小的负载开始,逐渐增加模拟查询请求的数量或用户量, 直到系统响应时间超时,就是说的负载测试。这儿加压的类型必须是应用提供的服务类型,也就是工作负荷。
负载测试的目标是测试在一定负载情况下的系统性能(不关注稳定性,也就是说不关注长时间运行,只是得到不同负载下相关性能指标即可);
实际中我们常从比较小的负载开始,逐渐增加模拟用户的数量(增加负载), 观察不同负载下应用程序响应时间、所耗资源,直到超时或关键资源耗尽,这就是所说的负载测试,它是测试系统的不同负载情况下的性能指标。
压力测试的目标是测试在一定的负载下系统长时间运行的稳定性,但是这个负载不一定是应用系统本身造成的。比如我们经常利用脚本或工具事先吃掉服务器的一部分cpu、内存或带宽等,创造出一定的负载环境并测试被测应用系统在此环境下的事物处理能力,响应时间等等。
压力测试尤其关注大业务量情况下长时间运行系统性能的变化(例如是否反应变慢、是否会内存泄漏导致系统逐渐崩溃、是否能恢复);
压力测试是测试系统的限制和故障恢复能力,它包括两种情况:
1、稳定性压力测试:在选定的压力值下,长时间持续运行。通过这类压力测试,可以考察各项性能指标是否在指定范围内,有无内存泄漏、有无功能性故障等;
2、破坏性压力测试:在稳定性压力测试中可能会出现一些问题,如系统性能明显降低,但很难暴露出其真实的原因。通过破坏性不断加压的手段,往往能快速造成系统的崩溃或让问题明显的暴露出来。
通透点解释:
这儿有个服务员,对应咱们的应用系统吧。
压力测试就是给这位服务器外部压力,比如长时间不让他休息,不给开工资等,看看服务员会不会开小差(无法及时响应请求),或者罢工(宕机)之类的。
负载测试就是在单位时间内逐步加大这位服务员的工作量,看看此服务员在不同的工作量下完成服务的速度和质量,从而了解到该服务员的工作能力。
压力测试和负载测试能够帮组我们了解到一个服务器的抗压能力和工作能力,当然也能帮我们评估一个系统或软件的性能瓶颈与质量。
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
只有拥有坚定的决心和不懈的努力,才能实现梦想。路漫漫其修远兮,吾将上下而求索。让失败成为你前行的垫脚石,让奋斗成为你翱翔的翅膀。不忘初心,方得始终,相信自己,愿你在奋斗中收获成功的果实。
只有勇往直前,才能让生活更精彩。坚持不懈,付出就会有回报。不要放弃自己的梦想,因为你能比你想象的更加优秀。每一步都是跨越成功的里程碑,努力奋斗,实现未来的目标!
每一次的尝试都是一种成长,每一次的失败都是一种经验。只要坚持不懈,勇往直前,就一定能够迎来成功的喜悦和荣耀。所以让我们一起努力奋斗,为实现自己的梦想而不懈努力!
版权归原作者 百度测试开发 所有, 如有侵权,请联系我们删除。