导言
本文主要介绍JMeter3.0引入的新特性:Dashboard Report,图形化的HTML格式多维度测试报告。借助这个特性,可以很大程度上降低我们搭建基于JMeter的性能测试平台时,在结果展示上的难度,将更多的经历放在后端的平台功能而不是去临时学习前端图表库。
Reference:
Apache JMeter Dashboard Report
Apache JMeter Glossary
*建议下载Jmeter3.1版本,因为Ver3.0由于编码问题报告中的中文会显示成乱码。官方在Ver3.1修复了这个问题。
具体实现
- 修改配置文件
在\bin\jmeter.properties文件中做如下修改,将注释符去掉
jmeter.save.saveservice.bytes=true
jmeter.save.saveservice.label=true
jmeter.save.saveservice.latency=true
jmeter.save.saveservice.response_code=true
jmeter.save.saveservice.response_message=true
jmeter.save.saveservice.successful=true
jmeter.save.saveservice.thread_counts=true
jmeter.save.saveservice.thread_name=true
jmeter.save.saveservice.time=true
jmeter.save.saveservice.timestamp_format=ms
jmeter.save.saveservice.timestamp_format=yyyy/MM/dd HH:mm:ss
如果需要显示更多错误信息,做如下修改
jmeter.save.saveservice.assertion_results_failure_message = true
- 生成报告
根据.jmx文件 执行并生成报告
jmeter -n -t 脚本.jmx -l 记录.jtl -e -o ./Report
根据.jtl文件 生成报告
jmeter -g 记录.jtl -o ./Report
- 报告
新特性介绍
JMeter3.0提供一个用于生成HTML页面格式图形化报告的扩展模块。该模块支持通过两种方式生成多维度图形化测试报告:
- 在JMeter性能测试结束时,自动生成本次测试的HTML图形化报告
- 使用一个已有的结果文件(如CSV文件)来生成该次结果的HTML图形化报告
其默认提供的度量维度包括:APDEX(Application Performance Index)指数
聚合报告
- 类似于UI上的Aggregate Report
Errors报告
- 展示不同错误类型的数量以及百分比
响应时间变化曲线
- 展示平均响应时间随时间变化情况
- 类似于JMeter Plugins在UI上的jp@gc - Response Times Over Time
数据吞吐量时间曲线
- 展示每秒数据吞吐量随时间变化的情况
- 类似于JMeter Plugins在UI上的jp@gc - Bytes Throughput Over Time
Latency time变化曲线
- 展示Latency time随时间变化的情况
- 类似于JMeter Plugins在UI上的jp@gc - Response Latencies Over Time
每秒点击数曲线
- 类似于JMeter Plugins在UI上的jp@gc - Hits per Second
HTTP状态码时间分布曲线
- 展示响应状态码随时间的分布情况
- 类似于JMeter Plugins在UI上的jp@gc - Response Codes per Second
事务吞吐量时间曲线(TPS)
- 展示每秒处理的事务数随时间变化情况
- 类似于JMeter Plugins在UI上的jp@gc - Transactions per Second
平均响应时间与每秒请求数的关系图
- 展示平均响应时间与每秒请求数(可以理解为QPS)的关系
Latency time与每秒请求数的关系图
- 展示Latency time与每秒请求数的关系
响应时间百分位图
- 响应时间的百分位分布图
活动线程数变化曲线
- 展示测试过程中活动线程数随时间变化情况
平均响应时间与线程数的关系图
- 展示平均响应时间与线程数的关系
- 类似于JMeter Plugins在UI上的jp@gc - Response Times vs Threads
柱状响应时间分布图
- 展示落在各个平均响应时间区间的请求数情况
注1:Latency time没有翻译成中文,这里对其计算方式做注解:
Latency time = 接收到响应的第一个字节的时间点 - 请求开始发送的时间点
from just before sending the request to just after the first response
has been received
– Apache JMeter Glossary响应时间(JMeter术语中的Elapsed time) = 接收完所有响应内容的时间点 - 请求开始发送的时间点
from just before sending the request to just after the last response
has been received
– Apache JMeter Glossary
注2:Apdex 标准从用户的角度出发,将对应用响应时间的表现,转为用户对于应用性能的可量化为范围为 0-1 的满意度评价。。
Apdex (Application Performance Index) is an open standard developed by
an alliance of companies. It defines a standard method for reporting
and comparing the performance of software applications in computing.
– wikipedia