How to Generate JMeter Dashboard Report?

Begum Gezer
Beyn Technology

--

What you will do with your performance test run and how to read the results? This is one of the most critical parts of the performance tests. Because others will ask for the result in a way that they can understand. You cannot show just the test script, test plan, or listener’s result. They will not understand with a look at your JMeter result file. It is large and hard to understand. And you cannot use JMeter listeners to show some graphs since JMeter GUI is not suitable for large loads.

This was what we talked about in the previous article. We need to run tests with Non-GUI Mode, the reason is that the JMeter is not designed to execute high loads and consumes lots of resources. So that, you will get the wrong information about the test results. We agreed that you need to run a performance test with the Non-GUI mode. But you need to save run results with a Non-GUI run into a file to be able to read results later or use them to generate a report. You will be able to see the run summary only at the command prompt after a run if you don’t save the results into a file.

We talked about how to use the command line to run the JMeter test plan before. You have two options to keep run results for the run. You add a listener and give a file path to keep results. And when you run with a command line you will be able to find run results in the given file path of the listener.

But in that case, you will save all run results into a file by appending all run results. It will be hard to distinguish runs.

The best option is to create a result file by the command line before starting the run.

This is how we run the test with a command line and add “-l” command to save results;

You can name the result file as you can understand it belongs to which run. In my case, I named the file “Sample_100th0RP.xls”. You can name the file with a prefix of test plan name “testplan_” and give the running configurations like “100th” for 100 threads as a thread number and “0RP” for 0 rums up value in the sample.

When we open the result file you will see a mess of values like the following example;

As you can see, you cannot read the results properly. We need to use result values and see them in a proper way like the run summary, statistics, and graphs.

HTML Dashboard Report

Jmeter supports dashboard report generation to get graphs and statistics from a test plan. The dashboard generator is a modular extension of JMeter. Dashboard generator reads and processes the samples from CSV files, which is the result file we generated after run and generates HTML files containing graph views. It can generate the report at the end of a load test or on demand.

You can generate the report with the following command line;

In my example;

You can find the generated HTML files in the given report path.

This report provides the following metrics:

In the Dashboard of the report;

  • APDEX (Application Performance Index) table that computes for every transaction the APDEX based on configurable values for tolerated and satisfied thresholds
  • A request summary graph showing the Success and failed requests
  • A Statistics table providing a summary of all metrics per transaction including 3 configurable percentiles:
  • An error table providing a summary of all errors and their proportion in the total requests:
  • A Top 5 Errors by Sampler table providing for every Sampler

In the Charts tab;

There exist zoomable chart where you can check/uncheck every transaction to show/hide it.

You can enable and disable shown requests from the graph by clicking on the data at the bottom of the graph and zoom on any part of the graph by selecting a part on the graph view at the zoom section.

Charts are separated into three sections over time, Throughput, and response time. Under each section, you can find related graphs. I will show you one from each section and show you how to commentate on them.

  • Response times Over Time

In my example, I don’t have a continuous load so I don’t have nice-looking overtime and throughput graphs. It is because I use a 0 rump-up value in the test run. I have only one dot which is the time point that all requests are sent.

With a continuous load, you will have a graph like;

The Response over time graph shows you the response point of each request over the time during your run. The graph granularity is 1 min as default. Each dot on the graph means the average response time at that point of running date time.

  • Transactions per second

In my example, all requests are sent at the same time so the graph includes only one dor per request.

With a continuous load, you will have a graph like;

The Transactions per second graph shows you the number of active threads within the elapsed time of running the test. If you hover at a point you will be able to see the number of transactions per second. It shows transaction throughput for active test threads. The formula of total transaction throughput is:

<active thread> * 1 second / <1 thread response time>

  • Time vs Thread

In my example;

The Time vs Thread graph shows the average response time of active threads through the increment. You can understand if the number of active threads increases, and is your response time affected or not from the graph. If active threads return a response and the system can handle the load, then the graph will have a stable line-like chart. If not the sample point’s average response time will increase accordingly and we will have more ups and downs in the graph.

Customizing the Dashboard Report

You may need to customize the dashboard report. For instance, the most basic one is editing the report title. In the JMeter bin folder, there is “user.properties” file where you can find configurations for report customization.

In that file, you can edit the report title, change date formats, change existing graph configurations and add more custom graphs to the report.

To sum up, we talked about how to store run results and use results to generate a dashboard report, customize reports, and more importantly how to read the report.

You can find more graphs in the document that is linked below. Happy testing!

https://github.com/bgmgzr/JemeterSample/blob/main/SampleRepots.zip

--

--