Web applications have become very complex with the advent of the n-tier Web architecture. Load testing, which consists of scalability, performance and stability testing, is the only way to uncover major problems inherent in the architecture. Doing performance testing of such complex Web applications is very challenging and can lead to measured losses if it isn't carried out properly in a planned manner. In this tip I offer some measures that can help get Web applications tested adequately for performance.
It's a good idea to plan your load testing effort in the early design phases so that there aren't any last-minute surprises.
It's always beneficial to have a testing environment that is comparable to production. Make sure to document specifications related to things such as machine configuration, speed and setup apart from knowing the exact number of users the applications would be serving at a given point of time.
You can plan a good test strategy after you get the exact requirements from the client about his expectations from the Web application. Write down test cases considering the kinds of users to be supported with typical hardware configuration.
Some pointers to consider while writing test cases:
- Will the Web application need HTTPS testing as it will require more client hardware?
- Are there any stability issues that will prevent the site from operating in a production environment?
- How many synchronized concurrent requests can the application handle?
- How many nonsynchronized super users can one machine handle before response time degrades below a set limit?
- Do the results scale linearly as you add additional hardware?
It's very important to have proper metrics in place during the overall testing process. This can include the number of orders processed per minute or the number of milliseconds required to execute a request on an ASP page.
Metrics help to quantify the results of the changes made between each of your test runs. They provide a comparison to the benchmarks defined for your Web application.
Using metrics is of no use if you can't make meaning out of the results that you get by using those metrics. So try to analyze the data collected by using metrics and see if they meet the standards set previously.
Also, make sure to store each test run's metrics for future evaluation. Going back to past data is critical to understanding how the system is reacting to the changes being made.
Use of testing tools
Along with a testing strategy, it's important to use an appropriate load test tool. A proper load testing tool can be identified based on the type of Web application to be tested, as well as how critical and complex the application is.