Load Testing
Load Testing
Load Testing
Load Testing is a non-functional software testing process in which the performance of software application is tested under a specific
expected load. It determines how the software application behaves while being accessed by multiple users simultaneously. The goal
of Load Testing is to improve performance bottlenecks and to ensure stability and smooth functioning of software application before
deployment.
Number of concurrent users that an application can support, and scalability to allow more users to access it.
It is a type of non-functional testing. In Software Engineering, Load testing is commonly used for the Client/Server, Web-based
applications - both Intranet and Internet.
Some extremely popular sites have suffered serious downtimes when they get massive traffic volumes. E-commerce websites invest
heavily in advertising campaigns, but not in Load Testing to ensure optimal system performance, when that marketing brings in
traffic.
Popular toy store Toysrus.com, could not handle the increased traffic generated by their advertising campaign resulting in
loss of both marketing dollars, and potential toy sales.
An Airline website was not able to handle 10000+ users during a festival offer.
Encyclopedia Britannica declared free access to their online database as a promotional offer. They were not able to keep up
with the onslaught of traffic for weeks.
Many sites suffer delayed load times when they encounter heavy traffic. Few Facts -
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.
Loading testing identifies the following problems before moving the application to market or Production:
Server configuration issues like a Web server, application server, database server etc.
Hardware limitation issues like CPU maximization, memory limitations, network bottleneck, etc.
Load testing will determine whether the system needs to be fine-tuned or modification of hardware and software is required to
improve performance.
Prerequisites of load testing:
The chief metric for load testing is response time. Before you begin load testing, you must determine -
Memory
Disk Storage
Network configuration
Strategies of load Testing:
There are many numbers of ways to perform load testing. Following are a few load testing strategies-
Manual Load Testing: This is one of the strategies to execute load testing, but it does not produce repeatable results, cannot
provide measurable levels of stress on an application and is an impossible process to coordinate.
In house developed load testing tools: An organization, which realizes the importance of load testing, may build their own
tools to execute load tests.
Open source load testing tools: There are several load testing tools available as open source that are free of charge. They
may not be as sophisticated as their paid counterparts, but if you are on a budget, they are the best choice.
Enterprise-class load testing tools: They usually come with capture/playback facility. They support a large number of
protocols. They can simulate an exceptionally large number of users.
o Determine connection speeds. Some users may be connected via leased lines while others may use dial-up
8. Re-test
1. Load testing should be planned once the application becomes functionally stable.
6. The consistency of response time over the elapsed period should be logged & the same should be compared with various
test runs
Load testing identifies the bottlenecks in the system under Stress Testing determines the breaking point of the
various workloads and checks how the system reacts system to reveal the maximum point after which it breaks.
when the load is gradually increased
Difference between Functional and Load Testing:
Results of functional tests are easily predictable as we Results of load tests are unpredictable
have proper steps and preconditions defined
Results of functional tests vary slightly Load test results vary drastically
Frequency of executing Functional Testing will be high A frequency of executing load testing will be low
Results of functional tests are dependent on the test data Load testing depends on the number of users.
Docker
Taurus
Jmeter
Graphics Blazemeter
Advantages and disadvantages of Load testing:
Tools can be expensive as pricing depends on the number of virtual users supported.