Core JavaJava

JMeter Results Analysis

1. Introduction

Apache JMeter is open-source software designed for performance testing and load testing of applications by simulating heavy traffic and measuring how the system behaves under different loads. In this example, I will analyze the following key metrics from the JMeter Results via its built-in listeners:

  • Response Time (Average, Minimum, Maximum, Median, 90th/95th/99th percentiles) – The amount of time it takes to process a request. A high response time indicates a bottleneck or underperformance in the application.
  • Throughput (Request per Second, Transactions per Second) – How many requests the system can handle per second. Low throughput indicates the server is overwhelmed.
  • Number of Concurrent Users – The number of virtual users (threads) are actively executing requests during a test. It helps simulate the real-world user load.
  • Error Rate – The percentage of failed requests during the test. A high error rate suggests there may be issues with the server or application handling requests.
  • Latency – The time it takes for a request to reach the server and for a response to return. High latency indicates network issues or inefficient server processing.
  • Network Traffic – The data sent and received by JMeter during a test execution. It assesses how much bandwidth the system is consuming, how it handles data transfer under load, and whether network issues could be causing delays or failures.

2. Setup a Test Plan

In this step, I will create a JMeter test plan by adding a Sampler of HTTP Request that tests a GET Rest API: https://cat-fact.herokuapp.com/facts/. It configured 100 users. Reference this article to configure the Thread Group.

jmeter analyze results
Figure 1. JMeter Test Plan

Figure 1 shows this test plan has six report listeners:

  • View Results Tree shows details of sampler requests and responses.
  • Summary Report shows response time, throughput, and network traffic data.
  • Aggregate Report is similar to the Summary Report but with aggregated statistics per request.
  • Aggregate Graph is similar to the Aggregate Report but with a bar graph.
  • Graph Result plots the response times on a graph.
  • Response Time Graph is similar to Graph Results but focuses specifically on response times.

3. JMeter Analyze Results via Listeners

3.1 View Results Tree

The View Results Tree listener shows the sampler’s header and body of requests and responses. Figure 2 shows the “response body” with a JSON string. The “response header” tab shows the response header data. It can save the results into a file if configured.

jmeter analyze results
Figure 2. View Results Tree

The View Result Tree listener is very useful for debugging individual requests as it shows detailed information for each sampler, including request data, response data, and any errors that occurred. However, it’s not ideal for large-scale tests since it can overwhelm the system with a lot of data.

3.2 Summary Report

The Summary Report listener shows response time, throughput, and network traffic data and is ideal for performance and load testing to get an overall picture of how the system is handling traffic. If it’s over the target threshold (e.g., 2 seconds), you’ll need to investigate the bottlenecks. Figure 3 shows the summary report of the 100 HTTP-Request tests set up in step 2.

jmeter analyze results
Figure 3. Summary Report
  • The average response time is 202 milliseconds.
  • The minimum response time is 121 milliseconds.
  • The maximum response time is 1112 milliseconds.
  • The error % is 0.
  • The throughput is 9.8 requests per second.
  • The data sent per second is 1.18 KB.

3.3 Aggregate Report

Aggregate Report is similar to the Summary Report but with some aggregated statistics per request.

jmeter analyze results
Figure 4. Aggregate Report
  • The Median response time is 130 milliseconds.
  • 90% of requests’s response time equals to or less than 372 milliseconds.
  • 95% of requests’s response time equals to or less than 482 milliseconds.
  • 99% of requests’s response time equals to or less than 883 milliseconds.

3.4 Aggregate Graph

Aggregate Graph is similar to the Aggregate Report but with a bar graph for visual comparison.

jmeter analyze results
Figure 5. Aggregate Graph

3.5 Graph Result

The Graph Results listener plots the response times on a graph. It allows users to configure options when plotting the response time.

jmeter analyze results
Figure 6. Graph Result

Graph Results review the throughput and response times visually to see if there is a correlation between load and performance. You might see response times increase significantly after a certain threshold, indicating that the server is being overwhelmed.

3.6 Response Time Graph

Response Time Graph is similar to Graph Results but focuses specifically on response times. It helps to visualize how response times change during the test, especially under varying loads. In this step, I will configure the Response Time Graph to write the results into a file at this location: C:\MaryTools\workspace\Jmeter\response_time_graph_test_result.jtl.

jmeter analyze results
Figure 7. Response Time Graph

4. JMeter Analyze Results via Dashboard

The JMeter Dashboard Report is a built-in feature that generates a comprehensive, graphical report of the test results in HTML format. It provides detailed insights into the performance of the system under test, and it’s very useful for analyzing results in a structured way after the test execution. The JMeter Dashboard Report GUI provides an easy way to analyze the test results with a visual representation of key performance metrics. In this step, I will run the following Jmeter command to generate a dashboard web page from the output file saved in step 3.6.

JMeter command to generate dashboard

jmeter -g C:\MaryTools\workspace\Jmeter\response_time_graph_test_result.jtl -o C:\MaryTools\workspace\Jmeter\output

After the command, then navigate to the output folder and check the generated dashboard files.

JMeter Generated Dashboard Files

C:\>cd C:\MaryTools\workspace\Jmeter\output

C:\MaryTools\workspace\Jmeter\output>dir
 Volume in drive C is OS
 Volume Serial Number is 92BA-6AB7

 Directory of C:\MaryTools\workspace\Jmeter\output

02/01/2025  09:11 AM              .
02/01/2025  09:06 AM              ..
02/01/2025  09:11 AM              content
02/01/2025  09:11 AM             9,692 index.html
02/01/2025  09:11 AM              sbadmin2-1.0.7
02/01/2025  09:11 AM             1,017 statistics.json
               2 File(s)         10,709 bytes
               4 Dir(s)  104,159,997,952 bytes free

C:\MaryTools\workspace\Jmeter\output>
  • Line 12: The generated dashboard index.html

The generated index.html opens the JMeter dashboard that shows various response times, throughput, and charts.

jmeter analyze results
Figure 8. JMeter Dashboard

5. JMeter Analyze Results via Hosted Services

JMeter results can be analyzed via hosted services. Hosted services typically provide enhanced reporting, powerful data analysis, integration with other tools, and easy access to performance metrics. Here are popular hosted services: BlazeMeter, RedLine13, and Performance Cloud.

6. JMeter Analyze Results via JMeter Plugins

JMeter provides several built-in plugins to analyze results and there are additional JMeter Plugins provided by the community. For example, PerfMon Plugin monitors system-level metrics like CPU, memory, and disk usage on the server side while the test is running. It helps to correlate performance issues with system resource usage. If high resource usage (CPU, memory) as load increases, then it indicates resource limitations that could cause a drop in performance under heavy load.

7. Conclusion

JMeter is a powerful tool for simulating real user behavior and load testing. Analyzing the Jmeter test results with key metrics via various listeners can gain deep insights into how the system performs under load, troubleshoot bottlenecks, and fine-tune the application for better performance. In this example, I analyzed the test results via the following listeners: View Results Tree, Summary Report, Aggregate Report, Aggregate Graph, Graph Result, and Response Time Graph.

Mary Zheng

Mary graduated from the Mechanical Engineering department at ShangHai JiaoTong University. She also holds a Master degree in Computer Science from Webster University. During her studies she has been involved with a large number of projects ranging from programming and software engineering. She worked as a lead Software Engineer where she led and worked with others to design, implement, and monitor the software solution.
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Back to top button