Load testing is evolving as a discipline and it has discovered most of its business in the Internet economy. This paper examines various types of load testing and provides a detailed discussion on the load testing process. All load testing tools simulate realistic volumes of users to measure, define, validate, and maintain optimal application performance. There are many tools available on the market that can help in load testing, but this paper presents a brief overview of Web Application Stress Tool (WAST) that can serve the purpose.
Load Testing is creation of a simulated load on a real computer system by using virtual users who submit work as real users would do at real client workstations and thus testing the systems ability to support such workload. –Watson, Rational inc.,
Testing of critical web applications during its development and before its de-ployment should include functional testing to confirm to the specifications, per-formance testing to check if it offers an acceptable response time and load testing to see what hardware or software configuration will be required to provide acceptable response time and handle the load that will created by the real users of the system
Why is load testing important?
Load Testing increases the uptime for critical web applications by helping you spot the bottlenecks in the system under large user stress scenarios before they happen in a production environment
When should load testing be done?
Load testing should be done when the probable cost of the load test is likely less than the cost of a failed application deployment.
Thus a load testing is accomplished by stressing the real application under simu-lated load provided by virtual users.
Load Testing Process
This is the first step when the project decides on load testing for its system. Evaluation of the requirements and needs of a system, prior to load testing will provide more realistic test conditions. For this one should know all key performance goals and objectives like number of concurrent connections, hits per second etc.,
Another important analysis of the system would also include the appropriate strat-egy for testing applications. It can be load testing or stress testing or capacity test-ing.
Load Testing is used to test the application against a requested number of users. The objective is to determine whether the site can sustain a requested number of users with acceptable response times. Stress testing is nothing but load testing over extended periods of time to validate an application’s stability and reliability. Similarly capacity testing is used to determine the maximum number of concurrent users that an application can manage. Hence for businesses capacity testing would be the benchmark to say that the maximum loads of concurrent users the site can sustain before the system fails.
Finally it should also be taken into consideration of the test tool which supports load testing by determining its multithreading capabilities and the creation of number of virtual users with minimal resource consumption and maximal virtual user count.
Once the analysis of the system is done the next step would be the creation of user scripts. A script recorder can be used to capture all the business processes into test scripts and this more often referred as virtual users or virtual user scripts. A virtual user is nothing but an emulated real user who drives the real application as client.
All the business process should be recorded end to end so that these transactions will assist in breakdown of all actions and the time it takes to measure the per-formance of business process.
Run time settings should be defined the way the scripts should be run in order to accurately emulate real users. Settings can configure the number of concurrent connections, test run time, follow HTTP redirects etc., System response times also can vary based on the connection speed. Hence throttling bandwidth can emulate dial up connections at varying modem speeds (28.8 Kbps or 56.6 Kbps or T1 (1.54M) etc.
Every component of the system needs monitoring :the clients, the network, the webs server, the application server, the database etc., This will