Jmeter的Html报告汉化及解析
Jmeter的Html报告汉化及解析
经常有人提出Jmeter生成的html报告都是英文的看不懂,能不能给解释一下,一般提出这种问题的人要么是懒,要么是对性能测试不是很了解(隔行如隔山嘛,可以理解)。所以我专门整理了Jmeter报告的汉化模板,有兴趣的可以下载。当然不可能所有的内容都汉化,所以以下我会对各项指标再做一下说明。
一、html模板汉化
专门准备了Jmeter 4.x 和Jmeter5.x 两套汉化模板:
https://gitee.com/smooth00/jmeter-cn-report-template
使用方法也简单,下载我给的模板,将report-template目录替换apache-jmeter-x.x\bin\report-template目录即可,新生成的报告就被汉化了。汉化后的效果:
二、测试报告解析
1、Dashboard(概述面板)
(1)Test and Report informations(测试和报告信息)
Source file ---- 生成报告的源文件
Start Time ---- 开始时间
End Time ---- 结束时间
(2)APDEX (应用性能指标),计算每笔交易APDEX的容忍和满足阈值基于可配置的值,范围在 0-1 之间,1表示达到所有用户均满意。
Apdex:应用程序性能指标(0~1),1表示所有用户请求均满意,反之0则表示均不满意
T(Toleration threshold):可接受(容忍或满意)阈值,即用户可接受的响应时间
F(Frustration threshold):不可接受(失败)阈值,即用户不可接受响应时间
Lable:采样器名称
T和F两值可以在配置文件中找到,具体参见以下第三条 配置测试报告。
(3)Requests Summary(请求总结),成功与失败的请求占比,KO指失败率,OK指成功率
(4)statistics(数据分析),类似于jmeter聚合报告
Label:Sample采样器名称
Samples:总共发送请求数(线程数 * 循环次数)
KO:失败次数
Error%:请求失败率
Average:平均响应时间
Min:最小响应时间
Max:最大响应时间
90%Line:90%线,90%用户响应不超过该时间
95%Line:95%线,95%用户响应不超过该时间
99%Line:99%线,99%用户响应不超过该时间
Throughput:吞吐量,一般情况下可看做每秒完成请求数(和QPS类似)
Received:每秒从服务器端接收到的数据量
Sent:每秒从客户端发送的请求的数量
(5)Errors(错误情况)
主要就是统计请求出现错误
(6)Top 5 Errors by sampler(采样器的5大错误)
主要是统计TOP5发生错误的采样器信息,这里如果全部通过,就不会有统计。
2、Chart(图表)
包括Over Time(时间变化) 、Throughput(吞吐量) 、Response Times(响应时间)
(1)Over Time
1)Response Times Over Time(响应时间变化曲线),类似于JMeter Plugins上的jp@gc - Response Times Over Time
Response Times Over Time,即响应时间随时间变化趋势。由于应用需要初始化建立连接以及CPU、内存等分配都会消耗资源,随着系统趋于稳定,响应时间也会趋于稳定。
2)Response Time Percentiles Over Time (successful responses) (成功响应时间百分比),类似于jmeter聚合报告中的Min、Max、90%、95%、99%
3)Active Threads Over Time(活动线程时间变化曲线图),随着时间变化,每个时间节点上的活动线程数
活跃线程变化趋势,即并发用户数趋势。相当于我们模拟的并发用户发出请求随着时间变化的趋势。
4)Bytes Throughput Over Time(字节吞吐量时间变化曲线图),蓝色为每秒发送字节数,黄色为每秒接收字节数
5)Latencies Over Time(延迟时间曲线图),记录的是客户端发送请求完成后,服务器端返回请求之前的这段时间,在高并发场景或者业务强数据一致性场景,延时是个很严重的影响因素
6)Connect Time Over Time(连接时间变化曲线图),随着时间变化,每个时间节点花费在连接上的平均时间
(2)Throughput(吞吐量)
包括如下图内容:
1)Hits Per Second(每秒点击率),类似于JMeter Plugins上的jp@gc - Hits per Second
也叫每秒请求数
2)Codes Per Second(每秒状态码数量)
即每秒响应状态码数量,这里主要是对200响应成功的状态码进行记录统计。
3)Transactions Per Second(每秒事务数),即TPS,是性能测试中很重要的一个指标,它是用来衡量系统处理能力的一个重要指标,类似于JMeter Plugins上的jp@gc - Transactions per Second
如果没有开启事务,那么TPS也可看做QPS
4)Total Transactions Per Second(每秒总事务数)
5)Response Time Vs Request(响应时间点请求的成功或失败数)
即响应时间和请求数对比关系,如果请求数量太小就只有一些散点。
6)Latency Vs Request(延迟时间点请求的成功或失败数)
(3)Response Times(响应时间)
包括如下图所示
1)Response Time Percentiles(响应时间百分比)
响应时间百分比,通过之前压测数据中所有响应时间统计分析所展示的。可以更详细看出自己所需要了解的百分线用户的响应时间。
2)Response Time Overview(响应时间概述)
响应时间概述,仔细看下面这种图不难发现,横坐标所绘制的区间和我们最开始看到的APDEX应用程序性能指数中划分的区间一致。
3)Time Vs Threads(平均响应时间和线程数的对应变化曲线)
即活跃线程数和响应时间对比关系,这块如果请求数据较少的话就会造成结果不是十分明显。
4)Response Time Distribution(响应时间分布)
到此汉化的报告展示和解析完成, 可以看到,通过HTML可视化报告我们能够更加清晰、详细地了解到整个压测过程中应用性能指标的变化以及相应的数据统计分析。我们可以通过报告中给我们呈现的结果,对应用服务进行针对性的优化,让我们的服务更加稳固并且提供更好的体验。
三、配置测试报告
从JMeter3.0开始在bin目录就有reportgenerator.properties文件,保存了所有关于图形化HTML报告生成模块的默认配置,要变更配置,建议不要直接编辑该文件,而是推荐在user.properties中去配置和覆盖。
1、user.properties中配置,基本配置都是以jmeter.reportgenerator.为前缀的
(1)定义采样点粒度(overall_granularity)
user.properties中overall_granularity(采样点粒度)默认为60000ms,如下图
通过我们测试过程中,需要更小的粒度,如2秒,所以在上图中将60000修改为2000,也可以在文档末性加上jmeter.reportgenerator.overall_granularity=2000;
注意:基本配置都是以jmeter.reportgenerator.为前缀的
(2)定义报告的标题(report_title)
(3)定义Apdex评估中满意的阈值(单位ms)(apdex_satisfied_threshold)
(4)定义Apdex评估中可容忍的阈值(apdex_tolerated_threshold)
(5)修改响应时间的百分比
jmeter.properties中,有三个默认的响应时间的百分比:
如果需要修改这三个默认值,可以在user.properties文档末尾加上这三个字段名称,并重新赋值
2、关于html报告模板
JMeter的HTML报告生成时是使用了固定的模板,模板文件路径为./bin/report-template,进入该目录可以看到报告的每个
页面都有一个.fmkr模板文件,包括index.html.fmkr和./content/pages路径下的几个文件,可以利用这几个文件,修改对应的名称。
html报告的页面标题默认为Apache JMeter Dashboard,如果想改为这个页面标题,可以通过user.properties中的jmeter.reportgenerator.report_title来修改,通过这种方式来修改,那改变的是所有的页面标题;