Jmeter测试报告生成
本文使用的 Jmeter 版本为 apache-jmeter-3.2
1. 命令行模式将 jtl 文件转成测试图表
注意: 这种方式只适用于jmeter3.0以后的版本
1.1 在测试的过程中将 jtl 转换成测试报告
可以执行如下命令:
jmeter -n -t test_request.jmx -l test_result.jtl -e -o /home/csmijo/resultReport
参数说明:
-n : 非GUI 模式执行JMeter
-t : 执行测试文件所在的位置及文件名
-r : 远程将所有agent启动用在分布式测试场景下,不是分布式测试只是单点就不需要-r
-l : 指定生成测试结果的保存文件, jtl 文件格式
-e : 测试结束后,生成测试报告
-o : 指定测试报告的存放位置
ps:-o 指定的文件及文件夹,必须不存在,否则执行会失败,对应上面的命令就是 resultReport 文件夹必须不存在否则报错;如果存在,则文件夹必须为空;
报告文件如下图所示:
1.2 使用之前的测试结果,生成测试报告
如果在执行压测脚本的时候没有指定生成测试报告,在测试结束之后,也可以通过如下的命令生成:
jmeter -g log.jtl -e -o resultReport
参数说明:
-g : 指定已存在的测试结果文件
-e : 测试结果后,生成测试报告
-o : 指定测试报告的存放位置
ps:-o 指定的文件及文件夹,必须不存在 ,否则执行会失败
效果如上图
2. 插件模式将 jtl 转成测试图表
2.1 图表 plugin 的类型
1.AggregateReport=JMeter's native Aggregate Report,can be saved only as CSV
2.SynthesisReport=mix between JMeter's native Summary Report and Aggregate Report,can be saved only as CSV
3.ThreadsStateOverTime=Active Threads Over Time
4.BytesThroughputOverTime
5.HitsPerSecond
6.LatenciesOverTime
7.PerfMon=PerfMon Metrics Collector
8.DbMon=DbMon Metrics Collector,DataBase,get performance counters via sql
9.JMXMon=JMXMon Metrics Collector, Java Management Extensions counters
10.ResponseCodesPerSecond
11.ResponseTimesDistribution
12.ResponseTimesOverTime
13.ResponseTimesPercentiles
14.ThroughputVsThreads
15.TimesVsThreads=Response Times VS Threads
16.TransactionsPerSecond
17.PageDataExtractorOverTime
18.MergeResults=MergeResults Command Line Merge Tool to simplify the comparison of two or more load tests, need properties file (like merge-results.properties)
2.2 不同 plugin类型的生成方式
2.2.1 主要 plugin 类型
这里使用JMeterPluginCMD来生成对应的图片或者 csv 统计文件。
1.从官网下载:jpgc-cmd-2.1.zip: https://jmeter-plugins.org/wiki/JMeterPluginsCMD/
2.解压文件,对应的文件分别放入jmeter安装目录的对应文件夹下,即解压后bin录下的文件都放入到jmeter安装目录的bin目录下,以此类推
3.为了使用 JMeterPluginCMD 生成结果图片或 csv 文件,还需要依赖一下的组件:
i.jpgc-filterresults-2.1.zip https://jmeter-plugins.org/wiki/FilterResultsTool/
ii.jpgc-synthesis-2.1.zip https://jmeter-plugins.org/?search=jpgc-synthesis
iii.GUI界面中的plugins manager中的jpgc-Standard set,其*包含以下的文件:
jpgc-dummy
jpgc-fifo
jpgc-graphs-basic
jpgc-perfmon
jpgc-tst
jpgc-sense
jpgc-functions
jpgc-casutg
jpgc-ffw
4.然后就可以使用JMeterPluginsCMD.bat/sh生成图片或CSV文件了。比如生成性能测试结果图片或CSV文件的命令为:
#生成图片
JMeterPluginsCMD.bat --generate-png cpu.png --input-jtl cpu.jtl --plugin-type PerfMon
#生成CSV文件
JMeterPluginsCMD.bat --generate-csv cpu.csv --input-jtl cpu.jtl --plugin-type PerfMon
5.添加完上述的文件就可以生成如下plugin类型的图表
i.AggregateReport
ii.SynthesisReport
iii.ThreadsStateOverTime
iv.PerfMon
v.ResponseTimesOverTime
vi.TransactionsPerSecond
2.2.2 其他类型的 plugin
如果要生成如下plugin类型的图表:
1.BytesThroughputOverTime
2.HitsPerSecond
3.LatenciesOverTime
4.ResponseCodesPerSecond
5.ResponseTimesDistribution
6.ResponseTimesPercentiles
7.ThroughputVsThreads
8.TimesVsThreads
就还需要添加如下的jar包到jmeter安装目录的lib\ext下:
JMeterPlugins-Standard.jar
https://jmeter-plugins.org/downloads/old/
JMeterPlugins-Extras.jar
https://jmeter-plugins.org/downloads/old/
2.2.3 生成所有 plugin 类型的命令
添加好上面的依赖文件后,就可以使用如下的脚本批量生成图表了。