In load testing, ‘ramping’, the process of gradually increasing the number of virtual users and load at the beginning and throughout a test, is a recommended best practice.
Ramping allows the load to be increased slowly so performance can be measured at different load levels. It also is vital in identifying performance bottlenecks and breaking points of an application.
Why Web Load Test Ramping is Important
It is important to understand the benefits ramping load can have on load test results. For many applications it is unrealistic to apply a peak amount of user traffic immediately at the beginning of a test. Most real world applications do not encounter situations that cause them to reach peak users and peak load all at once.
In most cases, traffic builds up over a period of time before reaching a peak load. When a load test gradually ramps load, this process not only allows the system to warm-up and ease into heavier loads, it also provides a more realistic load scenario.
Another benefit of ramping is that the arrival timing of the virtual users being used occurs in a controlled manner which helps to provide even and consistent load during a load test. Figure 1 and Figure 2 shows an example of results from a test that was configured with no ramping phase at the beginning of the test.
Without a ramp at the beginning of the test, once the test was started all of the virtual users kicked off all at once and at approximately the same time. This caused most of the transactions to start and finish at similar times, creating a load pattern for the remainder of the test.
From the results seen in Figure 2, it is not hard to see that the transactions were taking approximately 3 minutes to complete and that the majority of transactions were completing in the same interval. As a result a consistent load level was not applied to the system, and is reflected in the results.
Now, let’s see what happens when a ramping phase is applied to the beginning of the test. Figure 3 and Figure 4 shows the results from a test that began with a 20 minute ramp phase.
The Transactions per Minute results are much more normalized. In comparison to the first test where at peak load the Transactions per Minute would range from 4-20, the second test results show that at peak load, the transaction rate ranged from 11-16. The load applied during the second test was clearly more consistent and produced much more desirable results.
In my next post, I’ll discuss best practices for determining how long to ramp at the beginning of a web load test.