聚合报告
通过添加监听器中的聚合报告,我们可以方便的统计出一次测试的相关指标,如下图
Average:平均响应时间(毫秒ms)
Median:中值时间,N个数据从小到大排列,第N/2个数
9x%Line:N个数据从小到大排列,第9x%N个数。所有数据中9x%的响应时间都小于9x。具体下面详解
Min:最短响应时间
Max:最长响应时间
Error:出错的百分率
Throughput:吞吐率(请求数/秒)
KB/sec:接收速率(千字节/秒)
90%Line的含义
90% Line (90 th Percentile) is the value below which 90% of the samples fall. The remaining samples too at least as long as the value. This is a standard statistical measure. See, for example: Percentile entry at Wikipedia.
——摘自官网
我的理解是,数据按由小到大的顺序排列后,取出第90%位。比如:2、5、1、5、3、8、0、2、1、9中,90%line就是8。
1. 按照升序进行排列 0、1、1、2、2、3、5、5、8、9
2. 10个数字,第90%位就是10*90%,第9位
3. 第9位是8,所以90%line就是8
看似很简单的定义,但是它究竟有什么意义呢?当一组数升序排列好后,选出第90%位,那就意味着前90%个数字都小于等于它,也就代表着改组数据中有90%的数小于等于该数字。同理99%line就代表该组数据中有99%的数字小于等于该值。
用在性能测试上,将显得十分的有意义。比如在响应时间中,代表着一组请求中,90%请求响应不会超过该指。可以有效的进行性能评估。
吞吐率(thoughput)
说到吞吐率就不得不先介绍吞吐量。
吞吐量指在一次性能测试中,网络上传输的数据量的总和。
用来反映服务器所能承受的压力,在测试中是一个重点的关注指标。但是只用吞吐量来衡量系统的性能是极其不准确的,比如,一个水龙头一天一夜流出1吨水;十个水龙头一秒流出1千克水。相比之下,一个水龙头的吞吐量是1000千克,十个水龙头的吞吐量是1千克。所以只看总量是不行的,还要看消耗的时间。
因此将吞吐量除以时间,所得到的单位时间内的数据量就是吞吐率。
在业务角度上来说,吞吐量不一定只能代表数据量,也可以用请求数、业务数、访问量等来衡量。比如在Jmeter中,吞吐率是请求数/秒
吞吐率代表着单位时间内所能承受的压力,是测试中一个重要的指标,通过比较吞吐量,可以发现系统的运行状态。当随着并发数增加时,吞吐率是不断增加的,当达到一个服务器极限后,再增加并发数,吞吐率会急速下降,直至服务器崩溃。所以当达到临界点(吞吐量最高点,负载和处理均衡时)为**最大吞吐率**,是系统在运行下的一个理想阈值范围。
jtl文件的分析
除了通过jmeter系统自带的监听器外,也可以通过命令符运行生成jtl数据文件。该文件是csv格式,可以通过excel或者txt打开。
设置jtl格式
通过点击任何一个监听器的configure按钮都可以弹出设置界面,进行设置。如下图,勾选所需的内容,点击Done即可保存。(在此笔者不一一为大家解释了)
jtl各项属性
jtl是jmeter采集的原始数据,包括:
timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,Latency
请求发出的绝对时间,响应时间,请求的标签,返回码,返回消息,请求所属的线程,数据类型,是否成功,失败信息,字节,响应时间
不包括聚合报告的内容!聚合报告的内容无法输出,只能通过原始数据进行二次分析计算。
其中聚合报告中部分值的计算方法如下:
1. 吞吐量=完成的请求数/完成这些请求数所需要的时间;
2. 平均响应时间=所有响应时间的总和/完成的请求数;
3. 失败率=失败的个数/总数数;
4. 时间的计算方法是:通过timeStamp时间戳(发出的起始时间)相减而得