jmeter视频地址:https://edu.51cto.com/course/14305.html


上一篇文章中我们讲了Jmeter结果分析最常用的一个Listener查看结果树,


今天接着讲另一个最常用的listener--聚合报告Aggregate Report。


我们先来看看聚合报告中的主要名称的含意:

Label:每个请求的名称

#Samples:各请求发出的数量

Average:平均响应时间(单位:毫秒)。默认是单个Request的平均响应时间,当使用了Transaction Controller时,也可以以Transaction为单位显示平均响应时间

Median:中位数,具体后面讲

90%Line:后面讲

95%Line:后面讲

99%Line:后面讲

Min:最小响应时间

Max:最大响应时间

Error%:请求的错误率 = 错误请求的数量/请求的总数

Throughput:吞吐量。默认情况下表示每秒完成的请求数,一般认为它为TPS。(注意单位的变化,如上图中,当TPS很低时,jmeter中默认会统计成每分钟的值,这时我们需要换算成以秒为单位)

KB/sec:每秒从服务器端接收到的数据量。

90%Line

 
在这里我觉得有必要说一下对 90%Line 的理解:

很多人都理解为:90%用户的平均响应时间。(我之前也一直这样认为),但是后来才发现我错了。

那看看JMeter 官网是怎么说的?

90% Line - 90% of the samples took no more than this time. The remaining samples at least as long as this.

“ 90% 的请求耗时没有超过这个时间,剩余的请求耗时至少在这个时间之上。”也就是说90%的请求耗时都在这个时间之下。

这里涉及到一个数学中的概念:百分位数

百分位数:

  统计学术语,如果将一组数据从大到小排序,并计算相应的累计百分位,则某一百分位所对应数据的值就称为这一百分位的百分位数。可表示为:一组n个观测值按数值大小排列,处于p%位置的值称第p百分位数。

百分位通常用第几百分位来表示,如第五百分位,它表示在所有测量数据中,测量值的累计频次达5%。以身高为例,身高分布的第五百分位表示有5%的人的身高小于此测量值,95%的身高大于此测量值。

百分位数则是对应于百分位的实际数值。



      百分位数是用于衡量数据的位置的量度,但它所衡量的,不一定是中心位置。百分位数提供了有关各数据项如何在最小值与最大值之间分布的信息。对于无大量重复的数据,第p百分位数将它分为两个部分。大约有p%的数据项的值比第p百分位数小;而大约有(100-p)%的数据项的值比第p百分位数大。对第p百分位数,严格的定义如下:

     第p百分位数是这样一个值,它使得至少有p%的数据项小于或等于这个值,且至少有(100-p)%的数据项大于或等于这个值。

  高等院校的入学考试成绩经常以百分位数的形式报告。比如,假设某个考生在入学考试中的语文部分的原始分数为54分。相对于参加同一考试的其他学生来说,他的成绩如何并不容易知道。但是如果原始分数54分恰好对应的是第70百分位数,我们就能知道大约70%的学生的考分比他低,而约30%的学生考分比他高。 

再举个假子:

有10个数:

1、2、3、4、5、6、7、8、9、10    按由小到大将其排列。

求它的第90%百分位,也就是第9个数刚好是9 ,那么他的90%Line 就是9 。

另一组数:

2、2.1、2.5、3、3.4、3.4、4、4、4、4、5、5、5、5.9、 5.91、6.8、8、12、24、24.1   按由小到大将其排列。

求它的第90%百分位,也就是第18个数,是12 ,那么他的90%Line 就是12。 

那么把百分位数用在性能测试中有什么意义呢?

它可以使用我们的分析结果更准确!

因为在评估一次测试的结果时,仅仅有平均响应时间是不够的。假如有一次测试,总共有100个请求被响应,其中最小响应时间为0.02秒,最大响应时间为110秒,平均事务响应时间为4.7秒,你会不会想到最小和最大响应时间如此大的偏差?是否会导致平均值本身并不可信?

如果我们把每个请求的响应时间用excel统计出来,会发现那个最大值的出现几率只不过是千分之一甚至万分之一,剩下99%的用户请求的响应时间都是在性能需求所定义的范围之内的;所以为了更准确的衡量整体请求的耗时情况,除了平均响应时间之外,还要有90%Line、95%Line、99%Line来辅助统计。

总结一下,聚合报告中的百分位数的含意:

Median:中位数,50%用户的响应时间在小于该值,注意它与average平均响应时间的区别;

90%Line:90%用户的响应时间小于该值

95%Line:95%用户的响应时间小于该值

99%Line:99%用户的响应时间小于该值

现在你明白了吗?