14.1.2 平均值
所谓平均值(Mean Value),就是把所有数值都相加,然后除以这些数值的个数。平均值也叫做算术平均数。平均值对于某类数据是非常有用的,比如考试成绩,年龄数据等。但是,在14.1.1所举出的数据来说,平均值并不能说明问题,甚至会隐藏可能的性能问题。
【实战演练:平均值的计算】
比如,在14.1.1的4个表格当中,就平均值来看,表现最好的应该是表14-2。这是因为,表14-1、表14-2、表14-3、表14-4的平均值依次为:
(5+6+4+8+13+10+4+4+5+7+8+10)/12 = 7;
(1+12+5+7+8+2+2+4+12+13+1+1)/12 = 5.67;
(6+6+6+8+12+12+14+4+8+6+6+6+6)/12 = 8.33;
(6+6+7+8+8+7+6+6+9+6+11+9)/12 = 7.41。
以上数值的单位均为秒。从结果中可以发现,表14-2响应时间的平均值确实是最短的。但是,需要注意的是,表14-2中的数据"两极分化"比较严重,既有很短的1秒,也有很长的13秒,而在平均值5.67秒附近的数值却很少。这样的情况就可能暴露出网站性能的某些问题,或者是数据采集中的不科学性。
读者在实际工作中得到测试结果的时候,不能单单记录数值,同时还要思考如下等问题:
响应时间很短是否由于缓存的缘故?
响应时间很长是否是Web应用代码的问题?
不同浏览器的响应时间有什么规律?
在测试过程中,对得到的数据多问几个为什么,有助于提高测试的准确性。
14.1.3 中值
中值的引入能够发现部分14.1.2节中表14-2中的数据问题。
【中值是什么】
所谓中值(Median Value),就是将数据从小到大排列起来,中间那个数的数值。
将中值的定义应用于实际,比如对于表14-1来说,其数据从小到大的排列依次为:
4 4 4 5 5 6 7 8 8 10 10 13 |
如果这一系列数据的个数为单数,中值就是中间那个数的值。如果类似表14-1的情况,数据个数是12,为偶数,则中值一般认为是最中间两个数值(这里是第6个和第7个)的平均值,即(6+7)/2=6.5。
经过计算,表14-1、表14-2、表14-3、表14-4的中值分别为6.5、4.5、6和7。
【中值与平均值的关系】
中值虽然不等同于平均值,但若中值与平均值越接近,则说明数据分布的越均匀。
14.1.4 正常值
正常值(Normal Value)并不一定意味着它的值是正常的。所谓正常值,是指在数据结果中出现频率最多的那个值,通俗地说,就是在它们中间最容易碰到的数值。表14-1、表14-2、表14-3和表14-4中的正常值分别为1、4、6、6秒,可见,正常值与平均值、中值可能会有很大差别。
【实战演练:正常值的判断】
设想这样一个场景:小白所测试的Web应用有某部分代码出现了问题,导致数据库连接经常超时,测得的响应时间序列为20、25、30、26、26、27、26等,在这样的数值当中,26是正常值,但它绝不是网站正常时应该具备的响应时间,因此,它又是"不正常"的。实际工作中这样的情况并不鲜见,读者在处理数据时一定要首先保证数据的有效性。
性能测试中正常值的意义在于发现当前配置下,多数情况采集到的数值是什么。