Load testing is instrumental to any web or mobile presence, whether it is e-commerce, bookings, media, governmental or something else – a modern ambitious enterprise needs to have the highest possible web performance standards. But how do you carry out a successful load test? Asks Sven Hammar, CEO of Apica System.
Load testing analyzes the behavior, performance, reliability, and capacity of a software implementation on specific hardware. Businesses use load tests to determine the maximum workload their software implementations can handle, as well as how the platform holds up under pressure. Together, this process helps to identify issues such as the need for more powerful hardware or the development of more efficient program code.
Measuring a load test
Load tests examine a wide range of metrics pertaining to performance, of which “load curves” are the most valuable. The most important load curve measurements examine the performance limit by gauging response time, capacity, and stability of the web application. For example, testing a web site would include measuring the average duration of a user session, the number of successful page calls per second, the percentage of page calls that fail, and the average response time to startling pages.
With these metrics, your business can obtain hard numbers identifying how many users can access your application simultaneously before it encounters performance issues. In most cases, these performance issues simply imply longer response times. But sometimes the amount of work that comes out of the application can decrease as the load increases. The “point of collapse” refers to the amount of work an application can perform before it becomes unresponsive.
Making the case
Development teams establish performance goals, such as “the application should be able to support 2 000 simultaneous users without performance degradation” or “every web page should load in under three seconds”. When designing a successful load test, the test planners should examine which parts of the application are most often used, which are most vital, and how many users are expected during peak load times to determine the scope of the test.
Testing design tips
* Measure the performance curve based on simultaneous user loads by running the same test and increasing virtual users logarithmically to 50, 100, 500, 1000, 1 500, 2 000, and so on until you have surpassed the performance goal.
* Make sure the load tests run a sufficient duration by allowing minimum 10 minutes effective test duration. Calculate ramp-up time versus load size and total length of the test.
* Be prepared to break or pause the application during the test. Someone should be on hand to restart the application if it goes down.
* Make sure the testing system itself does not get overloaded, as this will produce inaccurate tests. Monitor the load server’s CPU.
* Each virtual user needs its own login credentials for a test, as using the same account many times can produce errors not found in real-world situations.
* Provide a minimal 100Mbps connection between the testing server and the application server.
* Work with the system administrator, database administrator, or application developer during the analysis stage for feedback and additional data sources such as logfiles and CPU monitoring.
Tuning the application
The test results will provide insight into areas where the application can be improved to offer a better user experience. For example, if the test comes back with long response times, the application developers should look into problems with the database connection pool and the database engine.
If there’s no problem with the database, the test implies that the application itself has programming inefficiencies that need to be addressed. The results can also point developers in the right direction for addressing stability problems and application overload issues.