4.5.4 压力测试法
压力测试法是一种在一段时间内持续使用超过系统规格的负载进行测试的可靠性测试方法。
所有系统都有其本身的性能规格。负载在性能规格范围内,系统需要稳定提供正确功能,这一点很好理解。但在负载超过性能规格的情况下,对于系统应该怎样处理,人们的理解往往不统一。那么我们又该如何分析和确定测试结果呢?要回答好这个问题,就要从负载模型说起。
有两种和压力相关的负载模型,一种是持续压力负载模型,一种是突发压力负载模型,如图4-28所示。
1.持续压力负载模型测试
当使用持续压力负载模型进行压力测试时,允许系统出现负载处理失效,但我们不希望系统直接宕机。有些系统能够对超过性能规格的负载做bypass(绕过)处理,这样依然能够尽力保证正确处理性能规格内的负载,如图4-29所示。
图4-28 持续压力负载模型和突发压力负载模型
图4-29 持续压力负载模型处理方式参考
从测试关注点来说,对于持续压力负载模型测试,业务负载处理是否正常并不是我们的重点关注项,需要我们重点关注的是:
·系统如果对超过规格的负载做了bypass处理,则需要测试bypass功能的正确性和有效性;
·系统不会因为持续压力负载而直接宕机。
尽管我们允许在持续压力负载模型下出现业务失败,但我们希望当业务负载再次恢复到性能规格范围内后,系统能够正确处理所有业务,这又构成了一种新的测试方法——恢复测试法,我们将在4.5.5节详细描述这个测试方法。
2.突发压力负载模型测试
所谓“突发”,是指业务负载在很短的时间内出现超过性能规格又立即恢复的现象,如图4-28b所示。
由于负载突发情况持续时间极短,用户甚至无法觉察,整个过程平均负载一般都不会超过性格规格,所以通常情况下,我们希望系统能够正确处理“突发”:系统不会因为突发发生宕机或出现异常,并可以正确处理突发业务,在存在突发的情况下不会出现业务失败。