Graphical representation for performance testing
This article describes the most popular ways to represent results of test execution performance in Jmeter, reviews some Graphic plugins and created graphs for representative summary report. In many cases result perception in digital representation (tables) is harder for understanding and perception than it can be in graphs and charts. Also, in many reports we need to compare results after testing under different conditions (with different quantity of users or testing within different time interval, etc.) JMeter tool gives an ability to describe performance testing results in several variants of graphic view, displays result both in digits and in charts. The same result can be described in a different way for better perception in summary performance report.
The General summary report that is provided by SteelKiwi Quality Assurance team includes additional special chapter, in which we describe performance and load testing in details. To get and process testing results faster in a transparent for a customer way, we use an opportunity provided by JMeter tool.
After performance and load testing is carried out, we apply several graphics and table visualisation listeners for testing data processing. In this article the opportunities of Jmeter in creating various charts are described.
It is possible to confine standard schedules of JMeter that have already been implemented in tool, such as "Graph result". "Graph result" displays overall time of response from server to the sent requests. In this listener you can find general information about longest responsives, average speed of responses, deviation from average trend, throughput and median of server responding to different requests and their quantity. You can find that time is shown in ms at “Y” axis.
Table reports are more informative in JMeter, as "Summary Report" shows. This report displays all main indicators for all requests in the Test Plan, and includes quantity of sent requests. In the table you can find bottlenecks or other problems at once and solve them immediately.
Generally, this table report is enough for general representative view of performance and load testing, to see how application works under the load. But for some more sophisticated analysis we should take advantage of additional opportunities of JMeter, for example install plugins that give ability to display testing summary in graphics.
"Response Code per Second" - Plugin
"Response Code per Second" is a popular plugin that we use in our daily work and that should be installed additionally to JMeter. It shows all response codes from server during Test Plan execution in details. In the graphic you can find types of server responses, different errors, quantity of server responses and time of testing performance. The example below displays Test Plan execution when one user is active, login, upload data, logout.
"Response Codes per Second" report view significantly changes if quantity of active users increases. Quantity of responses is increasing, as a result quantity of errors from server is increasing too. In our case it is a minor increase.
"Response Times Distribution" - Plugin
Report displays a model of response time distribution. The Log-Normal distribution is the one of the best means of describing latencies of server response time across all the user base over a particular period of time (time vs number of responses).
In the "Settings" tab there is checkbox "Aggregate display". If "Aggregate display" is selected, all data columns will be merged into single column, showing whole test response times distribution.
"Bytes Throughput Over Time"
This kind of report displays quantity of sent to and received from server bytes per second via web application, and also displays tests execution duration. At the example below shows tests execution when one user applies web application.
In this chart you can find how situation with responding from server changes, when quantity of active users increases.
Very important function is that all graphs, charts and tables can be downloaded to .csv, .xml format files, this analytic data has convenient form for further analysis. Plugins have additional option as "Setting view", that gives an ability to hide some tests and show more important ones - to summarize the execution.
For example: Group timeline values can be used for separate time value, it helps to display result points more clearly. Selector "Use relative times" - is a default time separator. There is an ability to add or delete gradient. If test execution is too long or you do not want to show all graphs, a limited number of points in row can be added in settings. Maximum value for "Y" axis, if you need to concentrate attention on "X" axis values.
If chart includes too many details or you need to hide some testing moments, Plugins give ability to display requests optionally, they can be shown or hidden. Choose requests for displaying in tab "Rows" and select checkboxes next to requests.
After choosing requests for displaying graphic transforms considerably and includes only important selected information. In our case we can find that the highest response time appears when user tries to login. If we change chart tab we can find precise time of responding in ms, in our case login request of 20 users at the same time responses nearly 10 sec, it is too long for web application. Processing this information we can take actions to prevent these situations in future.
In conclusion we can summarize that JMeter gives an opportunity to describe performance test results in intelligible, representative and clear form with ability for comparison and analysis. In this article only one Test plan is implemented and only five graphics view from and one table view are used. In your reports you can use much more graphs for analysis. All possibilities and opportunities of JMeter and its Plugins cannot be described on one test example or in one little article. Only at the official page of this tool you can find 17 graphic plugins. Many of them are worthy of special attention and additional articles.
Missed the first part of this article? It’s here: Apache JMeter in daily work