JMeterPluginsCMD Command Line Tool

YatHo發表於2016-11-18

There is small command-line utility for generating graphs out of JTL files. It behave just like right-click context menu on all graphs. The tool can generate PNG, CSV or both. Note you can use GraphsGeneratorListener if you want to bulk generate graphs after a test or for existing results.

Installation

The tool is placed inside distribution ZIP. The tool consists of CMDRunner.jar and shell wrappers. Wrappers just shorten call of"java -jar CMDRunner.jar --tool Reporter ...". The tool files must be placed inside lib/ext directory of JMeter installation. The tool requires JMeterPlugins.jar to be placed in lib/ext also. The tool requires JMeter 2.4 to function properly (2.3 will work only for PNG generation).

Usage and Parameters

Generating PNG:

java -jar CMDRunner.jar --tool Reporter --generate-png test.png --input-jtl results.jtl \
  --plugin-type ResponseTimesOverTime --width 800 --height 600

Generating CSV:

java -jar CMDRunner.jar --tool Reporter --generate-csv test.csv \
  --input-jtl results.jtl --plugin-type ResponseTimesOverTime

Yoy may generate CSV and PNG in single tool run. --help will show you short help list on available parameters.

--generate-png <file> generate PNG file containing graph  
--generate-csv <file> generate CSV file containing graph data  
--input-jtl <file> load data from specified JTL file  
--plugin-type <class> which type of graph use for results generation  

Use --input-jtl merge-results.properties with --plugin-type MergeResults. The merge-results.properties file is in JMETER_HOME/bin dir.

You may customize graph drawing and data processing like GUI settings do with optional parameters:

--width <pixels> for PNG only - width of the image, default is 800  
--height <pixels> for PNG only - height of the image, default is 600  
--granulation <ms> granulation time for samples  
--relative-times <yes/no> use relative X axis times, no will set absolute times  
--aggregate-rows <yes/no> aggregate all rows into one  
--paint-gradient <yes/no> paint gradient background  
--paint-zeroing <yes/no> paint zeroing lines  
--paint-markers <yes/no> paint markers on data points (since 1.1.3)  
--prevent-outliers <yes/no> prevent outliers on distribution graph  
--limit-rows <num of points> limit number of points in row  
--force-y <limit> force Y axis limit  
--hide-low-counts <limit> hide points with sample count below limit  
--success-filter <true/false> filter samples by success flag (since 0.5.6), possible values are true, false, if not set no filtering on success flag will occur  
--include-labels <labels list> include in report only samples with specified labels, comma-separated  
--exclude-labels <labels list> exclude from report samples with specified labels, comma-separated  
--auto-scale <yes/no> enable/disable auto-scale multipliers for perfmon/composite graph  
--line-weight <num of pixels> line thickness for graph rows  
--extractor-regexps <regExps list> list of keyRegExp and valRegExp pairs separated with {;}, only used by PageDataExtractorOverTime  
--include-label-regex <true/false> include samples using regular expression  
--exclude-label-regex <true/false> exclude samples using regular expression  
--start-offset <sec> include in report only samples with (timestamp - relativeStartTime) > startOffset  
--end-offset <sec> include in report only samples with (timestamp - relativeStartTime) < endOffset  

Plugin Type Classes

Make note that you need to install corresponding plugins set to have Extras plugins available in CMD.

Most of class names are self-explanatory:

  • 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)

Other Ways to Automate Reporting

You can use BM.Sense service to automate test results storage and reporting. See also: BM.Sense Uploader plugin.

相關文章