使用场景:我们直接使用window环境下JMeter压测时,可以直观的看到实时的图标展示,但如果我在Linux下或者建性能自动化平台时,JMeter运行完成后,仅仅是保存了个jtl文件,需要你自己解析成你想要的报表,那么这个时候可以考虑使用命令行生产报表的方式(当然如果你足够强大,可以直接写脚本处理jtl文件,因为基础数据都在jtl中)。
JMeterPluginCMD命令行工具生成png图片和csv统计文件
Jmeter是个纯java的开源的轻量级性能测试工具,功能强大。因为是轻量级的,与loadrunner相比,报告统计的相对较少。不过有jmeter的插件-JMeterPlugins,可以提供不少其他的报告,包括各种响应时间、吞吐率、线程等的变化曲线等
并且这个插件提供了命令行工具,可以将我们看到的各种曲线,各种报告统计成png图片,或者csv文件。这样我们就完全可以通过命令行来运行jmeter,生成jtl文件,然后在解析jtl文件,产生各种报告,或者展示到网页,或者插入到数据库,等等。
安装
下载JMeterPlugins-Standard-1.2.0.zip和JMeterPlugins-Extras-1.2.0.zip,解压将里面的jar包复制到jmeter的lib/ext文件夹中即可。
用法
生成png图片:
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-png ThreadsStateOverTime.png
--input-jtl 1.jtl--plugin-type ThreadsStateOverTime
以下是常用的几个图:
1、TPS:
java -jar CMDRunner.jar --tool Reporter --generate-png HitsPerSecond.png --input-jtl log22222.jtl --plugin-type HitsPerSecond
2、响应时间的百分比:
java -jar CMDRunner.jar --tool Reporter --generate-png ResponseTimesPercentiles.png --input-jtl log22222.jtl --plugin-type ResponseTimesPercentiles
3、响应时间分布:
java -jar CMDRunner.jar --tool Reporter --generate-png ResponseTimesDistribution.png --input-jtl log22222.jtl --plugin-type ResponseTimesDistribution
4、线程数随时间的变化曲线
java -jar CMDRunner.jar --tool Reporter --generate-png ThreadsStateOverTime.png --input-jtl log22222.jtl --plugin-type ThreadsStateOverTime
生成csv:
java -jar $CMDRunnerPath/CMDRunner.jar --tool Reporter --generate-csvThreadsStateOverTime.csv --input-jtl 1.jtl --plugin-type ThreadsStateOverTime
-----------------------------------了解更多--------------------------------------
当然也可以一次性生成两个文件。下面是改命令的参数:–generate-png 指定png图片文件
–generate-csv 指定csv文件名
–input-jtl 指定要解析的jtl文件
–plugin-type 指定要输出的数据类型,比如响应时间、cpu使用率、错误率等
Plugin Type Classes
插件提供解析下面这些数据的对象:AggregateReport= JMeter’s native Aggregate Report, can be saved only as CSV 聚合报告
SynthesisReport = mix between JMeter’s native Summary Report and Aggregate Report, can be saved only as CSV
ThreadsStateOverTime = Active Threads Over Time 线程数随时间的变化曲线
BytesThroughputOverTime 流量随时间的变化曲线
HitsPerSecond 点击率随时间的变化曲线
LatenciesOverTime延迟随时间的变化曲线
PerfMon= PerfMon Metrics Collector 服务器参数随时间变化曲线注意这个需要在jmx脚本中添加,服务器监控,要指定ip、端口、监控项,还需要指定perfMon的输出文件,或者在命令行指定,如sh jmeter.sh -n -t HTTP请求-baidu.jmx -l 2.jtp -JforcePerfmonFile=true,这样会输出在当前路径。ResponseCodesPerSecond 响应码随时间变化曲线
ResponseTimesDistribution响应时间分布
ResponseTimesOverTime 响应时间随时间变化曲线
ResponseTimesPercentiles响应时间的百分比
ThroughputVsThreads 吞吐率随线程变化曲线
TimesVsThreads = Response Times VS Threads 响应时间随线程变化曲线
TransactionsPerSecond事务随时间变化曲线
PageDataExtractorOverTime
MergeResults
资源监控non-GUI相关
1、再次提醒一下,在非GUI模式下运行Jmeter时指定把result保存到一个文件是非常必要的。
2、命令执行,解析jtl文件
java -jar CMDRunner.jar --tool Reporter --generate-png PerfMon.png --input-jtl cpuMem.jtl --plugin-type PerfMon --limit-rows 100 --relative-times no