Load Testing
Load testing tests the software or component with increasing load, number of concurrent users or transactions is increased and the behavior of the system is examined and checked what load can be handled by the software.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.
Some standard load-testing techniques include:
Stress testing: Testing the system’s ability to handle a high load above normal usage levels
Spike testing: Testing the system’s ability to handle sudden spikes in traffic
Soak testing: Testing the system’s ability to handle a sustained load over a prolonged period.
Tools such as Apache JMeter, LoadRunner, Gatling, and Grinder can be used to simulate load and measure system performance. It’s essential to ensure that the load testing is done in an environment that closely mirrors the production environment to get accurate results.
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 of running the software application or not.
To assess the sustainability of the application concerning extreme user load.
To find out the total number of users accessing the application simultaneously.
To determine the scalability of the application.
To allow more users to access the application.
Load Testing Process:
Test Environment Setup: First, create a dedicated test environment for load testing. It ensures that testing is done correctly.
Load Test Scenario: In the 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 created in the previous step are now executed. Different measurements and metrics are gathered to collect the information.
Test Result Analysis: The testing results are analyzed, and various recommendations are made.
Re-test: If the test is failed, then the test is performed again to get the result correctly.
Metrics of Load Testing :
Metrics are used to know the performance of load testing under different circumstances. It tells how accurately the load testing is working under other test cases. It is usually carried out after preparing load test scripts/cases. There are many metrics to evaluate the load testing.
Average Response Time: It tells the average time taken to respond to the requests generated by the clients, customers, or users. It also shows the speed of the application depending upon the time taken to respond to all requests generated.
Error Rate: The Error Rate is mentioned in percentage, which denotes the number of errors that 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 other technical problems. It makes the application less efficient when the error rate keeps on increasing.
Throughput: This metric is used to know the range of bandwidth consumed during the load scripts or tests, and it is also used to see the amount of data that is being used for checking the request that flows between the user server and the application central server.
Requests Per Second: It tells how many requests are generated to the application server per second. The requests could be images, documents, web pages, articles, or other resources.
Concurrent Users: This metric takes the count of the users who are actively present at a particular time or at any time. It just keeps track of the count of those visiting the application at any time without raising any request in the application. From this, we can quickly know at which time a high number of users are visiting the application or website.
Peak Response Time: Peak Response Time measures the time to handle the request. It also helps find the peak time(longest time) at which the request and response cycle is dealt with and see which resource takes longer to respond.
The main objective of load testing is to determine the response time of the software for critical transactions and make sure that they are within the specified limit.
It is a type of performance testing.
Load Testing is non-functional testing.