Software Testing | Load Testing
Load Testing is a type of Performance Testing that determines the performance of a system, software product, or software application under real-life based load conditions. Basically, load testing determines the behavior of the application when multiple users use it at the same time. It is the response of the system measured under varying load conditions. The load testing is carried out for normal and extreme load conditions.
Objectives of Load Testing: The objective of load testing is:
- To maximize the operating capacity of a software application.
- To determine whether the latest infrastructure is capable to run the software application or not.
- To determine the sustainability of application with respect to extreme user load.
- To find out the total count of users that can access the application at the same time.
- To determine scalability of the application.
- To allow more users to access the application.
Load Testing Process:
- Test Environment Setup: Firstly create a dedicated test environment setup for performing the load testing. It ensures that testing would be done in a proper way.
- Load Test Scenario: In second step load test scenarios are created. Then load testing transactions are determined for an application and data is prepared for each transaction.
- Test Scenario Execution: Load test scenarios that were created in previous step are know executed. Different measurements and metrices are gathered to collect the information.
- Test Result Analysis: Results of the testing performed is analyzed and various recommendations are made.
- Re-test: If the test is failed then the test is performed again in order to get the result in correct way.
Metrics of Load Testing :
Metrics are used in knowing the performance of load testing under different circumstances. It tells how accurately the load testing is working under different test cases. It is usually carried out after the preparation of load test scripts/cases. There are many metrics to evaluate the load testing. Some of them are listed below.
1. Average Response Time : It tells the average time taken to respond to the request generated by the clients or customers or users. It also shows the speed of the application depending upon the time taken to respond to the all requests generated.
2. Error Rate : The Error Rate is mentioned in terms of percentage denotes the number of errors occurred during the requests to the total number of requests. These errors are usually raised when the application is no longer handling the request at the given time or for some other technical problems. It makes the application less efficient when the error rate keeps on increasing.
3. Throughput : This metric is used in knowing the range of bandwidth consumed during the load scripts or tests and it is also used in knowing the amount of data which is being used for checking the request that flows between the user server and application main server. It is measured in kilobytes per second.
4. Requests Per Second : It tells that how many requests are being generated to the application server per second. The requests could be anything like requesting of images, documents, web pages, articles or any other resources.
5. Concurrent Users : This metric is used to take the count of the users who are actively present at the particular time or at any time. It just keeps track of count those who are visiting the application at any time without raising any request in the application. From this, we can easily know that at which time the high number of users are visiting the application or website.
6. Peak Response Time : Peak Response Time measures the time taken to handle the request. It also helps in finding the duration of the peak time(longest time) at which the request and response cycle is handled and finding that which resource is taking longer time to respond the request.
Load Testing Tools:
1. Apache Jmeter 2. WebLoad 3. NeoLoad 4. LoadNinja 5. HP Performance Tester 6. LoadUI Pro 7. LoadView
Advantages of Load Testing:
- Load testing enhances the sustainability of the system or software application.
- It improves the scalability of the system or software application.
- It helps in the minimization of the risks related to system downtime.
- It reduces the costs of failure of the system.
- It increases customer’s satisfaction.
Disadvantages of Load Testing:
- To perform load testing there in need of programming knowledge.
- Load testing tools can be costly.