一.新特性简介
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
- 柱状响应时间分布图
- 展示落在各个平均响应时间区间的请求数情况
- 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
二.快速入门
1.确认基本配置
- 在jmeter.properties或者user.properties确认如下配置项:
jmeter.save.saveservice.data_type=true
jmeter.save.saveservice.label=true
jmeter.save.saveservice.response_code=true
# response_data is not currently supported for CSV output
jmeter.save.saveservice.response_data=true
# Save ResponseData for failed samples
jmeter.save.saveservice.response_data.on_error=false
jmeter.save.saveservice.response_message=true
jmeter.save.saveservice.successful=true
jmeter.save.saveservice.thread_name=true
jmeter.save.saveservice.time=true
jmeter.save.saveservice.subresults=true
jmeter.save.saveservice.assertions=true
jmeter.save.saveservice.latency=true
jmeter.save.saveservice.connect_time=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.responseHeaders=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.encoding=false
jmeter.save.saveservice.bytes=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.filename=true
jmeter.save.saveservice.hostname=true
jmeter.save.saveservice.thread_counts=true
jmeter.save.saveservice.sample_count=true
jmeter.save.saveservice.idle_time=true
# Timestamp format - this only affects CSV output files
# legitimate values: none, ms, or a format suitable for SimpleDateFormat
jmeter.save.saveservice.timestamp_format=ms
jmeter.save.saveservice.timestamp_format=yyyy/MM/dd HH:mm:ss.SSS - 如果希望在Errors报告中展示更详细数据,需要确保如下配置
jmeter.save.saveservice.assertion_results_failure_message = true
- 如果使用了事务控制器(Transaction Controller),确认Generate parent sample为未勾选状态
2.生成报告
a. 在压力测试结束时报告
- 基本命令格式:
jmeter -n -t <test JMX file> -l <log file> -e -o <Path to output folder>
- 样例:
jmeter -n -t E:\apache-jmeter-3.0\script\test.jmx -l LogFile -e -o ./report
b. 使用已有的压力测试CSV日志文件生成报告
- 基本命令格式:
jmeter -g <log file> -o <Path to output folder>
- 样例:
jmeter -g E:\apache-jmeter-3.0\bin\LogFile -o ./report
两个样例都会在\apache-jmeter-3.0\bin\report目录下产生如下文件(夹):
用浏览器打开index.html文件,即可查看各种图形化报告:
注:在3.0版本,由于源码中字符编码的问题,可能会遇到生成的报告中,中文标签展示为乱码的问题
解决方案:修改JMeter report模块读取数据源码中的字符集设置为UTF-8,编译后替换到JMETER_HOME\lib\ext\ApacheJMeter_core.jar
下载链接:http://pan.baidu.com/s/1kVpsnNx