Understanding the Aggregate Report
Beginner - This article is part of a series.
The Aggregated Report in JMeter is one of the most used listeners. In this post, we will focus on understanding and analyzing all fields provided by the aggregated report. Essentially, this listener creates a results table with one row for each sample separately and provides information about “Average Time”, “Mean Value”, “90th Percentile Line”, “95th Percentile Line”, “99th Percentile Line”, “Minimum Response Time”, “Maximum Response Time”, “% Error”, “Performance”, and “KB/Sec Value”. It can also find the value for each of these fields at the bottom of the table.
- Name: Specifies the name of the summary report.
- Comments: Specifies related comments for the report. Write result to file / Read result from file: Allows exporting the report to a file or opening an export file previously generated results in the report.
- Log/Display Only: Before starting execution, you can mark this option as “Errors” or “Successes”. This will show the corresponding result in the table accordingly.
- Configure: Allows selecting which elements should be included for exporting the results file.
- Save table data: The result of the table’s execution is shown at the bottom of the added report. You can export the result of the table to a CSV file and choose whether or not to include “Group name in the table” and “Table header”.
The main information provided by this report is as follows:
- Label: HTTP request names. If the “Include group name in label” option is selected, the group of subprocesses’ name will be prefixed to the label. This allows for separate classification of identical labels from different thread groups if necessary.
- # Samples: Number of times the request was executed. With our image, there would be 581 samples for each HTTP request.
- Average: Average response time expressed in milliseconds. With our image, the first sample shows an average of 12351 ms, converted to seconds: 12.351s.
- Median: The median time from a set of samples indicates that 50% of the samples did not take more than this time, meaning that the rest took at least as long.
- 90% Line: 90% of requests have a response time lower than indicated. With our image, the first sample shows a value of 20983 ms, converted to seconds: 20.983s.
- 95% Line: 95% of requests have a response time lower than indicated. With our image, the first sample shows a value of 22286 ms, converted to seconds: 22.286s.
- 99% Line: 99% of requests have a response time lower than indicated. With our image, the first sample shows a value of 25931 ms, converted to seconds: 25.931s.
To calculate the percentiles (90%, 95%, 99%), list all the values of orders and sort them in descending order by their values. Then exclude transactions from the top (10%, 5%, 1%) of your total list.
- Min: Minimum response time, expressed in milliseconds. Considering our image, the first sample can observe a value of 3476 ms, converted to seconds 3.476s
- Max: Maximum response time, expressed in milliseconds. Considering our image, the first sample can observe a value of 34079 ms, converted to seconds 34.079s
- Error: Percentage of orders that responded with an error. Here we can observe HTTP codes. If you want more information about these codes, visit this previous post.
- Throughput: Indicates the number of orders per second/minute/hour in the test. This time is calculated from the start of the first sample to the end of the last sample.
- Received KB/s: Kilobytes received per second.
- Sent KB/s: Kilobytes sent per second.
If you’re starting to use this listener in your performance tests and need help, don’t hesitate to ask on our Facebook community or our Slack channel.
Facebook: https://www.facebook.com/groups/jmeterenespanol
Slack: https://jmeterenespanol.slack.com/