JMeter 命令行執行腳本得到的報告中,是沒有CPU、內存使用率等監控數據的,我們可以使用JMeter插件幫忙。
首先,需要下載JMeterPlugins-Standard.jar,jmeter-plugins-manager-1.3.jar,並將文件放到jmeter安裝包lib/ext目錄下。
1、生成jtl文件
我們可以使用“所有數據寫入一個文件”的功能,設置cpu的數據將會存到文件中:
文件名后綴支持.xml,.jtl,.csv;這里保存為.jtl后綴的文件;
當使用命令行“jmeter.bat -n -t d:\code.jmx(腳本路徑) -l d:\result.jtl -e -o d:\report”執行腳本后,會生成上圖配置的cpu.jtl文件。這個文件還不是圖形,我們無法查看CPU使用率的走勢。
這里可以使用“Command-Line Graph Plotting Tool”插件,將JTL文件生成圖像。
2、安裝插件
在選項菜單中看到插件管理子菜單:
進入插件管理界面,勾選“Command-Line Graph Plotting Tool”插件,並點擊“Apply Changes and Restart JMeter”按鈕:
安裝成功后,在%JMETER_HOME%\bin目錄下,會自動生成JMeterPluginsCMD文件。
3、jtl文件生成圖像
命令行執行“JMeterPluginsCMD.bat --generate-png test.png --input-jtl cpu.jtl --plugin-type PerfMon --width 800 --height 600”,將會生成test.png文件:
4、詳解JMeterPluginsCMD
官方文檔:https://jmeter-plugins.org/wiki/JMeterPluginsCMD/
生成PNG示例:
JMeterPluginsCMD.bat --generate-png test.png --input-jtl results.jtl --plugin-type ResponseTimesOverTime --width 800 --height 600
生成CSV示例:
JMeterPluginsCMD.bat --generate-csv test.csv --input-jtl results.jtl --plugin-type ResponseTimesOverTime
參數定義:
還可以通過可選參數設置圖像的大小等(這里不具體描寫,可參看官方文檔)。
--plugin-type可取值:
- 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
- DbMon = DbMon Metrics Collector, DataBase, get performance counters via sql
- JMXMon = JMXMon Metrics Collector, Java Management Extensions counters
- ResponseCodesPerSecond
- ResponseTimesDistribution
- ResponseTimesOverTime
- ResponseTimesPercentiles
- ThroughputVsThreads
- TimesVsThreads = Response Times VS Threads
- TransactionsPerSecond
- PageDataExtractorOverTime
- MergeResults = MergeResults Command Line Merge Tool to simplify the comparison of two or more load tests, need properties file (like merge-results.properties)