说压力测试(Pressure Testing)与负载测试(Load Testing)之间的区别之前,先说说性能测试,因为这两种测试都属于性能测试的范畴。性能测试是通过模拟用户的海量并发,来发现系统的承载能力、负载能力,在高并发下的处理能力,以及需要什么样的软硬件配置来满足性能需求。性能测试的目标是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈与优化软件,最终要做到优化系统以达到各项性能指标要求。
如果用一句话来分别概括压力测试(Pressure Testing)和负载测试(Load Testing)的话,这两句话分别是什么呢?
一、压力测试(Pressure Testing)
通过不断地增加并非用户数、增加数据量等施压措施,最终找到系统奔溃宕机时能承受的最大的各项性能指标值。
压力测试就好比找到一辆汽车能达到的最大极限时速,在最大极限时速时候这辆汽车可能已报废或部分损坏了,而系统已经宕机不工作了,只能通过冷启动来恢复系统的运行。
二、负载测试(Load Testing)
通过不断地增加并非用户数、增加数据量等负载措施,最终找到系统良好运行时能承受的最大的各项性能指标值。
负载测试就好比找到一辆汽车性能俱佳的最大运行时速,此时各项性能指标都是最优的,而性能也是如此的。
了解两者的概念之后,再来说说两者的具体目标和特点:压力测试的目标是在软件正式上线运行以前,通过执行可重复的增加负载的“破坏性”测试,以达到了解系统可靠性、性能瓶颈等,以提高软件系统的可靠性、稳定性,减少运行后系统宕机的可能性和由此可能带来的损失评估。而负载测试的目标是确定并确保系统在超出最大预期负载量情况下仍能正常运行。此外,负载测试还要评估性能指标,包括响应时间、事务处理速率、并发用户数、最大数据量等。
压力测试通常是在高负载情况下来对系统的稳定性进行测试,更有效地发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患、漏洞隐患等。负载测试是通过改变不同的系统负载方式、增加负载量等来发现系统中所存在的性能问题,以了解系统能达到的最优性能指标。