压力测试对系统的重要作用
我们对应用程序进行压力测试时经常会出现这种情况,就是测试到了最后却发现不明白测试结果有什么意义?实际上,当我们都不明白压力测试的意义时,我们就不能设计出各种极限测试用例。
压力测试不同于功能测试,软件的正确性并不是它的测试重点,它所看重的是软件的执行效率,尤其是短时间内访问用户数爆炸性增长时软件的响应速度。因此,明白压力测试的作用,对我们高效完成压力测试有至关重要的指导意义。
(1)测试应用程序的可靠性
在系统崩溃后总结之前失败的压力测试时,我忽视的第一个要点就是没有测试出应用程序在压力下的可靠性。压力测试除了对每个单独的组件进行压力测试外,更应该对带有其所有组件和支持服务的整个应用程序进行集中压力测试,以检查在巨大的工作负荷时,应用程序在峰值情况下是否可靠的执行操作。例如,当实际情况是平均每秒出现1个或2个中断的情形下,应当对每秒出现10个中断的情形来进行特殊的测试;又或者把输入数据的量提高一个数量级来测试输入功能是否可靠的响应。从本质上来说,压力测试是想要看在最大极限时程序是否可靠的运行。
(2)测试应用程序的并发性能
进行压力测试需要对实际的并发访问量有一个正确的预期估算,否则在负载远远大于事前预测的压力下系统将脆弱得不堪一击。导致系统崩溃的因素有很多,处理能力、存储速度、响应时间、网络带宽等无论哪部分出现短板拥堵、后果都可能导致全盘崩溃。
现在我明白,哪怕硬件条件达到了,如果软件的并行处理能力不足将会导致等候队列过长,响应时间变慢,系统崩溃也只是时间问题。简单说就是:压力测试是考察当前软硬件环境下系统所能承受的最大并发负荷,并帮助找出软件程序的瓶颈所在。
(3)测试应用程序的最大负载能力
压力测试的目的之一是找出应用程序能够支持的最大客户端数。通过多次的运行和对测试结果中正在运行用户数与错误用户的对比,然后根据可接受错误率就可得到该功能的最大负载访问的用户数。最大负载压力测试用来评估在超越最大负载的情况下系统将如何运行,这时的目标是要发现在高负载的条件下应用程序的缺陷(Bug),例如内存泄漏等。因此,最大负载能力不但是应用程序一个重要的技术指标,也是客户评估和验收软件的一个关键指标。
文章来源于领测软件测试网 https://www.ltesting.net/