指定响应时间需求并校验结果
尽管本节内容与Jmeter不是直接相关,但是Jmeter仍旧是指定响应时间需求和校验测试结果这两个负载测试评价任务互相联系的纽带。
在web应用的环境里,响应时间指的是从提交访问请求到等到HTML结果所耗费的时间。从技术的角度看,响应时间也应包括浏览器重绘HTML页面的时间,但是浏览器一般是一块接着一块地显示而不是直接显示完整的整个页面,让人感觉响应时间要少一些。 另外,典型的情况是,负载测试工具不会考虑浏览器的重绘时间。 因此, 在实际的性能测试中,我们将考虑以上描述的情形, 如果不能确信,可以在正常的响应时间上加一个固定值,如0.5秒。
以下是一套众所周知的确定相应时间的标准:
·用户将不会注意到少于0.1秒的延迟
·少于1秒的延迟不会中断用户的正常思维, 但是一些延迟会被用户注意到
·延迟时间少于10秒,用户会继续等待响应
·延迟时间超过10秒后,用户将会放弃并开始其他操作
这些阀值很有名并且一般不会改变,因为是关乎人类的感知特性的。 所以要根据这些规则来设置响应时间需求, 也需要适当调整以适应实际应用。例如,亚马逊公司(Amazon.com) 的主页也遵循了以上规则,但是由于更偏重于风格上的一致,所以在响应时间上有一点损失。
乍一看,好像有两种不同的方式来确定相应时间需求:
·平均响应时间(Average response time )
·绝对响应时间(Absolute response time);即, 所有的响应时间必须低于某一阀值
指定平均响应时间比较简单一些(straightforward),但是由于数据变化的干扰,这个需求往往难以实现。为什么取样中的20%的响应时间要比平均值高3倍以上呢?请注意,JMeter 计算平均响应时间与图形结果监视器中的标准偏差是一致的。
另一方面, 对绝对响应时间需求过于苛求是不实际的。 如果只有0。5%的取样不能通过测试该怎么办?如果再测一次,又会有很大的变化。 幸运的是, 使用置信区间(confidence interva)分析这种正规的统计方法可以顾及到取样变化的影响。
在继续进行前,让我们首先回顾一些基本的统计学知识。
中心极限定理(The central limit theorem)
中心极限定理表明如果总体的分布有一个平均值μ和标准偏差σ,那么对于一个十分大的n(>30),其取样平均值的分布将接近于正态分布,其平均值μmean = μ ,标准偏差σmean = σ/√n。注意取样平均值的分布是正态的,而取样自身的分布不必是正态的。也就是说如果多次运行测试脚本则测试结果的平均响应时间将会是正态的。
图 5 和图 6 分别展示了两个正态分布。 在这里横坐标是采样响应时间的均值, 总体的均值被调整到坐标的原点(shifted so the population mean is at the origin)。 图5 表明90%的时间里,采样均值位于±Zσ的区间里(percent of the time, the sampling means are within the interval ±Zσ,),这里的Z=1.645 和 σ 是标准偏差。 图 6 表明了99%的情况下的情形这时的Z=2.576。 在给定的概率下,如90%, 我们可以看到相应的Z呈现正态曲线,反之亦然。
Figure 5。 Z value for 90 percent
Figure 6。 Z value for 99 percent
在相关资料中所列的是可提供正态曲线计算的一些网站。在这些网站,我们可以计算随意的相对区间内的概率(如,-1.5 < X < 1.5)或者在一个聚集的区域(cumulated area)内 ,(如, X < 1.5)。 也可以从下面的表中得到近似值。
表 1 对应于给定的置信区间(confidence interval)的标准偏差范围(Standard deviation range)