Let's take a look at three of the most important performance metrics to watch in your load tests and how to interpret them to diagnose bottlenecks in your application.
Load tests are a critical part of the Agile development process, but it can be challenging to translate data into insights.
The most basic load testing metric is duration, which measures the time to complete a test script. After creating a baseline, you can use it to see whether performance is improving or deteriorating over time. Validations ensure that tests with excessive durations fail, prompting test engineers to take a closer look why.
LoadNinja is a browser-based load testing tool that looks at the average duration of each script and test step with a five-second resolution time. The duration includes think-time intervals, time to first byte, response time, and other timing data that reflect how long it takes a real browser to iterate through the test steps.
You can easily zoom in to specific areas to have a closer look at peak values, which can help you identify abnormal trends. By cycling through each step, you can quickly identify the slowest steps and flag them for follow-up.
#2. Navigation Timings
Duration tells you if there’s a problem, but it's not super helpful for diagnosing a bottleneck. By looking at Navigation Timings, you can see the specific elements that may be causing excessive loading times in order to find and fix the issue. These issues may include network speed, server response times, or the sheer size of the website's content.
Conventional load tests involve analyzing navigation timings from server logs. If you look at Chrome Developer Tools, you can see just how much data there is to analyze! It's challenging to determine what's causing an issue when there are so many different variables to consider — and you haven't even begun to diagnose the problem at this point.
LoadNinja provides an easy-to-use interface for analyzing Navigation Timings that are collected when a virtual user loaded the application in its browser. As with Duration, you can easily filter the data by step in order to discover what's causing an issue. You can also break down navigation timings into Redirect Time, DNS Time, Connect Time, First Byte Time, Response Time, and DOM Load Time to get a better idea of where the problem resides.
#3. Error Counts
Slow web applications are inconvenient for users, but errors are worse. When an application begins timing out, users will either abandon the website or call customer service. The good news is that load tests can identify when heavy loads start producing errors, such as timeouts or missing elements.
LoadNinja simplifies error counting and diagnosis by plotting the number of virtual users, errors for all iterations of scripts within the scenario, and errors for all iterations of each script. As with Duration and Navigation Timings, you can easily find the step where the errors occurred due to a connection timeout, missing elements, or other issues.
These errors may also occur due to a validation failure. For instance, you may have a maximum load time that reflects SLA requirements for your application. A failure to meet these requirements could trigger an error. You can then see the exact step where the error occurred and develop a plan to follow-up.
When you view the details of the error, you can easily see the name of the step where the error occurred, virtual user ID, iteration, response code, and error message. You can also see images of the web page taken at the time the error occurred and dive into the virtual user sessions to see what the DOM looked like at the time.
Automating the Analysis
LoadNinja makes it easy to analyze the raw data that was downloaded by the browser sessions in the Network Analytics tab. After choosing a step and clicking Analyze, you can see a waterfall of each resource downloaded and processed by the browser along with associated network timings for each iteration.
To make things even easier, you can use LoadNinja’s Sensei assistant to automatically narrow down performance issues and makes recommendations to fix them. Simply click Find Abnormalities to bring up the Sensei tool and then click Analyze for a given scenario. In just a few seconds, the machine learning algorithms will analyze the results and show you any underlying problems, the reason for the problems, and some advice on solving the problems.
Example of the LoadNinja Sensei Technology – Source: LoadNinja
In addition to finding bottlenecks, LoadNinja makes it easy to incorporate load testing into your CI/CD pipeline. The platform has pre-built integrations with Jenkins and the test management platform Zephyr for Jira.
Now Watch This
Load testing has become an important part of the Agile development process. By identifying bottlenecks before they reach production, you can dramatically improve the user experience and avoid costly downtime. The key is transforming the enormous amount of data generated into actionable insights that developers can use to diagnose problems.
LoadNinja provides a simple, but powerful, set of tools designed to streamline the process. You can quickly identify when and where problems occurred and drill down into the specific virtual sessions to solve them. In addition, you can increase test coverage and reduce cost with the platform’s easy-to-use record-and-replay functionality and CI/CD integrations.