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 website 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 300 simultaneous users without performance degradation” or “every web page should load in under six 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.
- Measure the performance curve based on simultaneous user loads by running the same test and increasing virtual users logarithmically to 1, 2, 5, 10, 20, 50, and so on until you’ve surpassed the performance goal.
- Make sure the load tests run a sufficient duration by dividing the number of users by 10 to determine the test duration in minutes.
- Be prepared to break the application during the test. Someone should be on hand to restart the application if it goes down.
- Make sure the testing system itself doesn’t get overloaded, as this will produce inaccurate tests.
- 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 100 Mbit/second 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.
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.
For more information, check out our Guide to Getting Started with Successful Load Testing or contact us.