Load Testing is a process by which
simulated demand is put on the application under test to demonstrate its behavior under different load conditions. Load
Testing generally applies ordinary stress to the application to review its
performance under regular anticipated conditions. Its final objective is to
establish that the software is able to handle the load it has been designed to
handle.
Load Testing, a key type of performance testing, enables to measure the response times,
throughput rate and the level of
resource utilization of the software application. It subjects the
associated hardware, server, the network to its load limits. This can be done
under lab conditions to accurately get an idea of its capabilities or it can be conducted in
the field to get a qualitative idea of its functions in the real world.
Endurance testing is a type of loadtesting. It subjects the application to load volumes over an extended
period of time. Endurance Testing quantifies the Mean Time to Failure and Mean
TIme Between Failure.
Steps
for Load Testing-
Step
1: Identify the performance acceptance
criteria. This is determined by balancing the business, technology, competition
and user requirements. The objectives of test generally include:
- Response Time
- Throughput
- Resource Utilization
- Business Load
- Maximum User Load
Step
2: Identify the anticipated user scenarios
with high risk key performance goals. The main steps for identifying these
scenarios are:
-
Identify the scenarios for the Web Application
-
Identify the activities in each scenario
-
Identify the commonly executed, most resource intensive scenarios
Step
3: Once the key scenarios are identified,
the workload profiles can be created to design load tests. For this, the
characteristics of the user scenario need to be defined.
- A user scenario can be thought of as a
user session, which can include navigational paths and a number of intermediate
steps to complete a task.
- Consider user pause as user delay or
think time.
- Define the average time for each
session for multiple concurrent views.
- Define the primary users.
Step
4: Identify the target load levels to
ensure that the tests can be used to compare a variety of load conditions. The
common inputs used for this are:
- Key Scenarios
- Volume of business
- Work distribution
- Session characteristics
Step
5: Identify the metrics that are most
relevant to the performance objectives. Only well selected metrics provide valuable
information. This can be done by:
- Defining performance questions that
can be tested.
- Determine quality goals
- Identify the metrics
- Identify the supporting metrics
- Regularly reevaluate the metrics to be
collected
Step
6: Designing tests can be done through the
scenarios defined, selected key metrics and the workload analyzed. Each test
has its own purpose, and is able to collect its own data and have its different
target load levels. Tests are designed
to collect information that helps to understand, evaluate and enhance the application.
Step
7: Load simulations need to reflect the
tests designed in order to collect useful information. The following points
need to be considered for this:
- Configure the test environment as per
the production environment.
- Ensure the not interference of
performance counters with the simulation.
- Use appropriate tools for load
generation.
- Begin with a small number of users,
continue to increase the load, record the behavior till the threshold is
reached, identify when the system crosses the threshold limit and continue to
do so till the SLA limit is violated.
Step
8: Result Analysis
- Analyze the recorded data against the
accepted level to determine the inward or outward trend from the performance
objective.
- Analyze the data and identify the potential
bottlenecks.
Conclusion:
Load testing enables us to quantify the maximum operating capacity of an application. It should not be confused with Stress testing, which is performed to determine the application's breaking point. It is a more severe form of testing, which helps to record the different warning signals that a software gives out before its actual breakdown.
No comments:
Post a Comment