压力测试和负载测试
一 基本概念理解
压力测试:在一定的负荷条件下,长时间连续运行系统给系统性能造成的影响。
负载测试:在一定的工作负荷下,给系统造成的负荷及系统响应的时间。
压力测试(STRESSTEST)和负载测试(LOADTEST)的区别:
1 可以看出压力测试有个长时间运行,而负载测试负载类型可能是其他类型的。
2 压力测试主要是为了发现在一(任意)定条件下软件系统的性能的变化情况。通过改变应用程序的输入以对应用程序施加越来越大的负载(并发,循环操作,多用户)并测量在这些不同的输入时性能的改变,也就是通常说的概念:压力测试考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在。其实这种测试也可以称为负载测试,但是负载测试通常描述一种特定类型的压力测试——增加用户数量以对应用程序进行压力测试。
例子:比如实际中我们说从比较小的负载开始,逐渐增加模拟用户的数量, 直到应用程序响应时间超时,就是说的负载测试。
最简单来说:
1 负载测试是测试软件本身最大所能承受的性能测试。
2 压力测试就是一种破坏性的性能测试。
二 关于web测试中的压力和负载测试
负载测试:
1 为了测量Web系统在某一负载级别上的性能,以保证Web系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问Web系统的用户数量,也可以是在线数据处理的数量。
2 负载测试应该安排在Web系统发布以后,在实际的网络环境中进行测试。因为一个企业内部员工,特别是项目组人员总是有限的,而一个Web系统能同时处理的请求数量将远远超出这个限度,所以,只有放在Internet上,接受负载测试,其结果才是正确可信的。
eg:Web应用系统能允许多少个用户同时在线?如果超过了这个数量,会出现什么现象?Web应用系统能否处理大量用户对同一个页面的请求?
压力测试 :
1 进行压力测试是指实际破坏一个Web应用系统,测试系统的反映。压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到Web应用系统崩溃,接着当系统重新启动时获得存取权。
2 压力测试的区域包括表单、登陆和其他信息传输页面等。
三 关于性能测试的一些浅见
性能测试是一个较大的范畴,包括测试在各种业务场景下的性能表现,包括响应时间、资源使用情况、系统极限容量等;负载测试、压力测试和容量测试只是从不同角度来测试的一种性能测试而已。
1 压力测试的目标:测试在一定的负载下系统长时间运行的稳定性,尤其关注大业务量情况下长时间运行系统性能的变化。
eg: 是否反应变慢、是否会内存泄漏导致系统逐渐崩溃、是否能恢复。
2 压力测试的范围:测试系统的限制和故障恢复能力,它包括两种情况:
稳定性压力测试:在选定的压力值下,长时间持续运行。通过这类压力测试,可以考察各项性能指标是否在指定范围内,有无内存泄漏、有无功能性故障等。
破坏性压力测试:在稳定性压力测试中可能会出现一些问题,如系统性能明显降低,但很难暴露出其真实的原因。通过破坏性不断加压的手段,往往能快速造成系统的崩溃或让问题明显的暴露出来。
3 负载测试的目标是测试在一定负载情况下系统性能(不关注稳定性,也就是说不关注长时间运行,只是得到不同负载下相关性能指标即可);实际中我们常从比较小的负载开始,逐渐增加模拟用户的数量(增加负载),观察不同负载下应用程序响应时间、所耗资源,直到超时或关键资源耗尽,这就是所说的负载测试,它是测试系统的不同负载情况下的性能指标。
4 容量测试可以确定整个系统能够处理的业务容量,包括不同配置、不同场景下的最大用户数、最大处理数据记录数、最大处理文件容量、最大事务量等。它所测试的是系统的极限容量。