Saturday, 20 April 2013

Load Testing

What is Load Testing?

Load Testing is a process to design and simulate usage traffic which can be used to test your application infrastructure for performance, reliability and scalability. Load Testing of applications involves testing the performance and scalability of your application with varying user load. Load testing involves simulating real-life user load for the target application. It helps you determine how your application behaves when multiple users hits it simultaneously. Load testing with different load strategies and conditions helps you determine software design issues like incorrect concurrency/pooling mechanism, poor optimization, memory build-up, etc. Load Testing helps you identify server configuration issues with Web server, application server, database server, load balancer, etc. Load Testing helps you detect if your current infrastructure is sufficient to meet your user demand.
Load Testing helps you determine the peak user load your application can sustain, number of concurrent users your application can support, and whether or not your application will scale as more users access it.Load testing is performed to determine a system’s behavior under both normal and anticipated peak load conditions. It helps to identify the maximum operating capacity of an application as well as any bottlenecks and determine which element is causing degradation.

Why Load Testing?

Load testing is the process of putting demand on a system or device and measuring its response.Success of most web or database applications, specially the ones related to e-commerce highly depends on its performance and response time when multiple users access it simultaneously. An application with high response time and poor performance can lead to huge problems. Load Testing helps in identifying the performance problems before you deploy your application for end users. Load Testing helps you design and simulate usage traffic which can be used to test your application infrastructure for performance, reliability and scalability.
-Load testing gives confidence in the system & its reliability and performance.
-Load Testing helps identify the bottlenecks in the system under heavy user stress scenarios before they happen in a production environment.
-Load testing gives excellent protection against poor performance and accommodates complementary strategies for performance management and monitoring of a production environment.

Load Testing Process

Once you plan your load test, the next step is to perform the load testing process. Load testing is the process of identifying performance bottlenecks in your web application under normal and peak loads. This will help you tune the resources (both hardware and software) of your web application and optimize the user experience for maximum performance.

The load testing process can be briefly described as below

i)Create a dedicated test environment for load testing
ii)Determine the following
iii)Load Test Scenarios
iv)Determine load testing transactions for an application
-Prepare Data for each transaction
-Number of Users accessing the system need to be predicted
-Determine connection speeds. Some users may be connected via leased lines while others may use dial-up
-Determine different browsers and operating systems used by the users
-Configuration of all the servers like web, application and DB Servers
v)Test Scenario execution and monitoring . Collecting various metrics
vi)Analyze the results. Make recommendations
vii)Fin-tune the System
viii)Re-test

(or)You can even follow the below steps

Step 1: Record Transaction
Step 2: Parameterize Test Scripts
Step 3: Associate percentage of Load
Step 4: Simulate Load
Step 5: Execute Load Test Cases
Step 6: Analyze Test Results

Advantages and Disadvantages of Load Testing


Following are the advantages of Load testing:

-Performance bottlenecks identification before production
-Improves the scalability of the system
-Minimize risk related to system down time
-Reduced costs of failure
-Increase customer satisfaction

Disadvantages of Load testing:

-Need programming knowledge to use load testing tools.
-Tools can be expensive as pricing depends on the number of virtual users supported.

Reference
Google
www.ITeLearn.com