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.
Figure 1 shows this test plan has six report listeners:
View Results Treeshows details of sampler requests and responses.Summary Reportshows response time, throughput, and network traffic data.Aggregate Reportis similar to theSummary Reportbut with aggregated statistics per request.Aggregate Graphis similar to theAggregate Reportbut with a bar graph.Graph Resultplots the response times on a graph.Response Time Graphis similar toGraph Resultsbut 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.
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.
- 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.
- The
Medianresponse 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.
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.
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.
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.
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.
Thank you!
We will contact you soon.
Mary ZhengFebruary 4th, 2025Last Updated: February 3rd, 2025

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