聚合报告有2中生成方式
1、在已有jtl文件的情况下,直接选择加载文件即可生成 聚合报告
2、在运行jmeter的过程中,动态生成聚合报告
聚合报告中统计的数据来源,其实都是统计的sampleResult中收集的数据。
需要特别注意的是:
Label:即为添加sample时设置名称
samples: 同名的请求名称的请求次数,会进行合并统计
Average:同名请求的累加响应时间/同名请求的累加请求次数
Median(50%Line) 90%Line 95%LIne 99%Line 这三个的统计逻辑是一致的,都是将请求相应时间及请求次数放到一个按照请求时间排序的TreeMap中,让后分别取50%、90%、95%、99%的请求次数对应的那个请求时间。
1、聚合报告中的每一行,代表一个请求(同名的请求会只显示一个,把结果合并)
2、聚合报告中的每一列信息,是由SamplingStatCalculator类的不同方法实现统计的,(相同名称的请求会共用同一个SamplingStatCalculator)
不管是运行jmeter时实时生成聚合报告,还是根据已经存在jtl生成聚合报告,最终的底层都是调用StatGraphVisualizer类的add(sampleResult)方法来生成表格的一行数据,传递的参数为每个请求的请求结果(sampleResult)信息。
add方法的调用时机:
1、根据jtl文件生成报告时,每解析一行数据就调用一次add方法
2、实时运行生成聚合报告,每请求一次,就调用一次add方法
注意:
private final Map tableRows = new ConcurrentHashMap<>();
tableRows封装了相同名称的sample对应的SamplingStatCalculator对象,也就是同名的sample会使用相同的SamplingStatCalculator对象计算数据,
samples Min Max的源码:下面的方法在没完成一个请求或者每解析一行jtl结果文件时都会调用一次
Media、90%Line、95%Line、99%Line
Throughput:
当前统计的请求次数/(最后一个请求的结束时间-第一个请求的开始时间)
KB/sec
Error%