What is Load Testing? (Examples)
โก Smart Summary
Load Testing measures how a software application behaves when many users access it at the same time, up to the expected peak. It identifies the maximum operating capacity, the bottlenecks that limit it, and whether the current infrastructure is sufficient.

What is 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.
This testing usually identifies –
- The maximum operating capacity of an application
- Determine whether the current infrastructure is sufficient to run the application
- Sustainability of application with respect to peak user load
- 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.
Why is Load Testing Needed?
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.
Load testing examples
- Toysrus.com could not handle the traffic its own advertising campaign generated, losing both the marketing spend and the sales it was meant to produce.
- 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 –
- Abandonment rises sharply beyond about 3 seconds of page load time, and the effect compounds on mobile connections
- Slow pages cost e-commerce sites measurable revenue on every visit, which is why performance is treated as a business metric rather than a technical one
Why Load Testing?
- 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.
Goals of Load Testing
Loading testing identifies the following problems before moving the application to market or Production:
- Response time for each transaction
- Performance of System components under various loads
- Performance of Database components under different loads
- Network delay between the client and the server
- Software design issues
- 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. To effectively conduct load testing, you can utilize various performance testing tools that are available to help you identify areas for improvement.
Prerequisites of Load Testing
The chief metric for load testing is response time. Before you begin load testing, you must determine –
- Whether the response time is already measured and compared – Quantitative
- Whether the response time is applicable to the business process – Relevant
- Whether the response time is justifiable – Realistic
- Whether the response time is achievable – Achievable
- Whether the response time is measurable using a tool or stopwatch – Measurable
Environment setup before load testing
| Hardware Platform | Software Configuration |
|---|---|
|
|
Load Testing Strategies
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.
How to do Load Testing
The load testing process can be briefly described as below –
- Create a dedicated Test Environment for load testing
- Define the load test scenarios
- 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
- A configuration of all the servers like web, application and DB Servers
- Test Scenario execution and monitoring. Collecting various metrics
- Analyze the results. Make recommendations
- Fine-tune the System
- Re-test
Guidelines for Load Testing
- Load testing should be planned once the application becomes functionally stable.
- A large number of unique data should be ready in the data pool
- Number of users should be decided for each scenario or scripts
- Avoid creation of detailed logs to conserve the disk IO space
- Try to avoid downloading of images in the site
- In the process of executing load testing test cases, the consistency of response time over the elapsed period should be logged and the same should be compared with various test runs.
Difference between Load and Stress testing
| Load Testing | Stress Testing |
|---|---|
| Load testing identifies the bottlenecks in the system under various workloads and checks how the system reacts when the load is gradually increased | Stress Testing determines the breaking point of the system to reveal the maximum point after which it breaks. |
| To recognize the upper limit of the system, set SLA of the app and check how the system can handle a heavy load. | To check out how the system behaves under extreme loads and how it recovers from failure. |
| Generating increased load on a web application is the main aim of load testing. | Stress testing aims to ensure that under a sudden high load for a considerable duration the servers donโt crash. |
| The attributes which are checked in a load test are peak performance, server quantity and response time. | This kind of testing checks stability response time, etc. |
| In load testing load limit is a threshold of a break. | In stress testing load limit is above the threshold of a break. |
Difference between Functional and Load Testing
| Functional Testing | Load Testing |
|---|---|
| Results of functional tests are easily predictable as we have proper steps and preconditions defined | Results of load tests are unpredictable |
| 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. |
Load Testing Tools
LoadRunner
LoadRunner, originally from HP and now part of OpenText following the Micro Focus acquisition, tests applications under normal and peak load. It generates load through virtual users that emulate real network traffic, and reports results graphically.
Read more in the LoadRunner tutorial.
Apache JMeter
An open-source Java tool and the most widely used free option. It supports HTTP, JDBC, JMS, FTP and more, stores test plans as XML, and integrates into CI pipelines. See the JMeter tutorial for a walkthrough.
Gatling
An open-source tool whose tests are written as code in Scala or Java. It handles high concurrency on modest hardware and produces detailed HTML reports, which suits teams that prefer version-controlled test scripts.
k6
An open-source tool with tests written in JavaScript, designed for developer-owned performance testing inside a CI pipeline rather than as a separate QA activity.
Choosing a tool
Pick JMeter for the widest protocol coverage at no cost, Gatling or k6 when the team wants tests kept in source control alongside the application, and a commercial tool such as LoadRunner when enterprise protocol support and vendor assistance justify the licence.
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 downtime
- Reduced costs of failure
- Increase customer satisfaction
Disadvantages of Load testing:
- Most tools require programming knowledge to script realistic scenarios.
- Tools can be expensive as pricing depends on the number of virtual users supported.
Key Metrics to Capture During a Load Test
The prerequisites section establishes response time as the chief metric. In practice a load test report needs six figures, because response time alone cannot tell you why a system slowed down.
| Metric | What it tells you | Warning sign |
|---|---|---|
| Average response time | The typical user experience | Rising as load increases |
| 95th percentile response time | The experience of the slowest users | Far above the average |
| Throughput | Requests successfully handled per second | Flattening or falling while load rises |
| Error rate | Share of failed or timed-out requests | Any rise above the agreed threshold |
| Concurrent users | Actual simultaneous sessions achieved | Lower than the scenario intended |
| Server resource use | CPU, memory, disk, and network headroom | Any resource above roughly 80 percent |
Read throughput together with response time. Rising response time with rising throughput simply means the system is busier. Rising response time with falling throughput means it has passed its capacity and is now losing work, which is the point the test exists to find.
Never report the average alone. An average of 900 ms with a 95th percentile of 1.1 seconds describes a consistent system. The same average with a 95th percentile of 11 seconds means one user in twenty is having an unacceptable experience that the average conceals.
How This Test Compares With Other Performance Tests
Performance testing is a family of tests that differ in the shape of the load applied, which is why they are so easily confused.
| Test type | What is increased | Question it answers |
|---|---|---|
| Load testing | Concurrent users, to the expected peak | Does it meet targets under normal peak traffic? |
| Volume testing | Data held in the database | Does it cope as the data set grows? |
| Stress testing | Load beyond capacity, until failure | Where does it break, and how? |
| Spike testing | Load, instantly and extremely | Does it survive and recover from a shock? |
| Endurance testing | Duration, at normal load | Does performance degrade over time? |
| Soak testing | Duration, watching resources | Are there memory or handle leaks? |
| Stability testing | Varying conditions | Does it stay reliable as conditions change? |
The distinction that matters most here: volume testing scales the data, load testing scales the users. A report that runs in two seconds against ten thousand rows and two minutes against ten million rows has a volume problem, not a load problem, and no amount of extra server capacity will fix it.



