In this article we are going to see how we can get good reports in jmeter after tests. This is continuation post of this original article.

Jmeter Reports

In Jmeter, we can have different type of test results.

  1. CSV test results (default selection by plugins)
  2. JTL logs
  3. HTML Results (modern report)
  4. Jmeter Listener Graphs : Images/reports created by Jmeter Listeners

Enabling HTML report

  • To enable, html report, we can use this in configuration.


Result File Formatting

  • To enable CSV results
  • To enable JTL results


But, if you have enabled <generateReports> true, this will be always CSV in spite of XML settings.


  • To disable timestamp from file name
  • Add timestamp at the end of the results filename
<resultsFileNameDateFormat>MMM, yyyy</resultsFileNameDateFormat>
  • Result file folder location
  • As maven build fails when detecting errors & it stops builds. To prevents this, we can ignore failure of results
  • To prevent maven build error, its better to have some threshold values to test case where a certain number of errors can be accepted. I prefer 2% error is tailorable. To apply this, use
  • Stop Jmeter from printing console output
  • To skip whole test
  • To specify Log Level

Finally report POM.XML


  • I have added following 3 html report properties for example which are optional
<jmeter.reportgenerator.report_title>Shantonu Example</jmeter.reportgenerator.report_title>

HTML Report UI



Creating Traditional Graphs

As we can always create graphs with JTL by CMD runner, another jmeter graph maven plugins available to generate this.

To use that plugins, we need to exclude html reporting and keep default XML (jtl) reporting format.

Adding Graph Plugins


We need to add a configuration section and add type of graph one by one.


This plugins supports following Graphs(PNG):

  • ThreadsStateOverTime = Active Threads Over Time
  • BytesThroughputOverTime
  • HitsPerSecond
  • LatenciesOverTime
  • ResponseCodesPerSecond
  • ResponseTimesDistribution
  • ResponseTimesOverTime
  • ResponseTimesPercentiles
  • ThroughputVsThreads
  • TimesVsThreads = Response Times VS Threads
  • TransactionsPerSecond

We can add all graphs or only necessary graphs. To show in example, I have added all supported graphs in project.

Finally Graph POM.XML

Old Graph Project Source

Lets Run & generate Graphs

  • If we want to generate Graphs, we need to run
mvn jmeter-graph:create-graph

And we can see graphs generated in configured folder. In my case ${}/jmeter/results/graphs/


From my example , I am adding all generated Graphs.

  • BytesThroughputOverTime


  • HitsPerSecond


  • LatenciesOverTime


  • PageDataExtractorOverTime wont have any data to show, so, its blank.


  • ResponseCodesPerSecond


  • ResponseTimesDistribution


  • ResponseTimesOverTime


  • ResponseTimesPercentiles


  • ThreadsStateOverTime


  • ThroughputVsThreads


  • TimesVsThreads


  • TransactionsPerSecond


So, we have learned both modern HTML Jmeter reporting and old style Jmeter Graphs in two different project example.

Thanks :)