Load testing is the process of putting demand on a structure or system and measuring its response.
Software load testing
The term ''load testing'' is used in different ways in the professional
software testing
Software testing is the act of examining the artifacts and the behavior of the software under test by validation and verification. Software testing can also provide an objective, independent view of the software to allow the business to apprecia ...
community. ''Load testing'' generally refers to the practice of modeling the expected usage of a software program by simulating multiple users accessing the program concurrently. As such, this testing is most relevant for multi-user systems; often one built using a client/server model, such as web servers. However, other types of software systems can also be load tested. For example, a word processor or graphics editor can be forced to read an extremely large document; or a financial package can be forced to generate a report based on several years' worth of data. The most accurate load testing simulates actual use, as opposed to testing using theoretical or analytical modeling.
Load testing lets you measure your website's
quality of service
Quality of service (QoS) is the description or measurement of the overall performance of a service, such as a telephony or computer network, or a cloud computing service, particularly the performance seen by the users of the network. To quantitat ...
(QOS) performance based on actual customer behavior. Nearly all the load testing tools and frameworks follow the classical load testing paradigm: when customers visit your website, a script recorder records the communication and then creates related interaction scripts. A load generator tries to replay the recorded scripts, which could possibly be modified with different test parameters before replay. In the replay procedure, both the hardware and software statistics will be monitored and collected by the conductor, these statistics include the CPU, memory, disk IO of the physical servers and the response time, the throughput of the system under test (SUT), etc. And at last, all these statistics will be analyzed and a load testing report will be generated.
Load and performance testing analyzes
software
Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work.
At the lowest programming level, executable code consists ...
intended for a multi-user audience by subjecting the software to different numbers of virtual and live users while monitoring performance measurements under these different loads. Load and performance testing is usually conducted in a test environment identical to the production environment before the software system is permitted to go live.
As an example, a website with
shopping cart
A shopping cart (American English), trolley (British English, Australian English), or buggy (Southern American English, Appalachian English), also known by a variety of other names, is a wheeled cart supplied by a shop or store, especially ...
capability is required to support 100 concurrent users broken out into the following activities:
* 25 virtual users (VUsers) log in, browse through items and then log off
* 25 VUsers log in, add items to their shopping cart, check out and then log off
* 25 VUsers log in, return items previously purchased and then log off
* 25 VUsers just log in without any subsequent activity
A test analyst can use various load testing tools to create these VUsers and their activities. Once the test has started and reached a steady-state, the application is being tested at the 100 VUser loads as described above. The application's performance can then be monitored and captured.
The specifics of a load
test plan A test plan is a document detailing the objectives, resources, and processes for a specific test for a software or hardware product. The plan typically contains a detailed understanding of the eventual workflow.
Test plans
A test plan documents the ...
or
script
Script may refer to:
Writing systems
* Script, a distinctive writing system, based on a repertoire of specific elements or symbols, or that repertoire
* Script (styles of handwriting)
** Script typeface, a typeface with characteristics of handw ...
will generally vary across organizations. For example, in the bulleted list above, the first item could represent 25 VUsers browsing unique items, random items, or a selected set of items depending upon the test plan or script developed. However, all load test plans attempt to simulate system performance across a range of anticipated peak workflows and volumes. The criteria for passing or failing a load test (pass/fail criteria) are generally different across organizations as well. There are no standards specifying acceptable load testing performance metrics.
A common misconception is that load testing software provides record and playback capabilities like
regression testing
Regression testing (rarely, ''non-regression testing'') is re-running functional and non-functional tests to ensure that previously developed and tested software still performs as expected after a change. If not, that would be called a '' regre ...
tools. Load testing tools analyze the entire
OSI protocol stack whereas most regression testing tools focus on
GUI
The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
performance. For example, a regression testing tool will record and playback a mouse click on a button on a web browser, but a load testing tool will send out hypertext the web browser sends after the user clicks the button. In a multiple-user environment, load testing tools can send out hypertext for multiple users with each user having a unique login ID, password, etc.
The popular load testing tools available also provide insight into the causes for slow performance. There are numerous possible causes for slow system performance, including, but not limited to, the following:
* Application server(s) or software
* Database server(s)
* Network –
latency,
congestion, etc.
* Client-side processing
*
Load balancing between multiple servers
Load testing is especially important if the application, system, or service will be subject to a
service level agreement
A service-level agreement (SLA) is a commitment between a service provider and a customer. Particular aspects of the service – quality, availability, responsibilities – are agreed between the service provider and the service user.
T ...
or SLA.
Load testing is performed to determine a system's behavior under both normal and anticipated peak load conditions. It helps to identify the maximum operating capacity of an application as well as any bottlenecks and determine which element is causing degradation. When the load placed on the system is raised beyond normal usage patterns to test the system's response at unusually high or peak loads, it is known as
stress testing
Stress testing (sometimes called torture testing) is a form of deliberately intense or thorough testing used to determine the stability of a given system, critical infrastructure or entity. It involves testing beyond normal operational capacity, ...
. The load is usually so great that error conditions are the expected result, but there is no clear boundary when an activity ceases to be a load test and becomes a stress test.
The term "load testing" is often used synonymously with
concurrency testing,
software performance testing
In software quality assurance, performance testing is in general a testing practice performed to determine how a system performs in terms of responsiveness and stability under a particular workload. It can also serve to investigate, measure, valid ...
,
reliability testing
Reliability engineering is a sub-discipline of systems engineering that emphasizes the ability of equipment to function without failure. Reliability describes the ability of a system or component to function under stated conditions for a specifi ...
, and
volume testing {{Unreferenced, date=March 2008
Volume testing belongs to the group of non-functional tests, which are often misunderstood and/or used interchangeably. Volume testing refers to testing a software application with a certain amount of data. This amou ...
for specific scenarios. All of these are types of
non-functional testing that are not part of functionality testing used to validate suitability for use of any given software.
User experience under load test
In the example above, while the device under test (DUT) is under production load - 100 VUsers, run the target application. The performance of the target application here would be the User Experience Under Load. It describes how fast or slow the DUT responds, and how satisfied or how the user actually perceives performance.
Browser-level vs. protocol-level users
Historically, all load testing was performed with automated API tests that simulated traffic through concurrent interactions at the protocol layer (often called protocol level users or PLUs). With the advance of containers and cloud infrastructure, the option is now present to test with real browsers (often called browser level users or BLUs). Each approach has its merits for different types of applications, but generally, browser-level users will be more akin to the real traffic that a website will experience and provide a more realistic load profile and response time measurement. BLUs are certainly a more expensive way of running tests and cannot work with all types of applications, specifically those that are not accessible through a web browser like a desktop client or API-based application.
Load testing tools
Physical load testing
Many types of machinery, engines, structures, and motors
are load tested. The load may be at a designated safe working load (SWL), full load, or at an aggravated level of load. The governing contract,
technical specification
A specification often refers to a set of documented requirements to be satisfied by a material, design, product, or service. A specification is often a type of technical standard.
There are different types of technical or engineering specificati ...
or
test method
A test method is a method for a test in science or engineering, such as a physical test, chemical test, or statistical test. It is a definitive procedure that produces a test result. In order to ensure accurate and relevant test results, a test met ...
contains the details of conducting the test. The purpose of a mechanical load test is to verify that all the component parts of a structure including materials, base-fixings are fit for task and loading it is designed for.
Several types of load testing are employed
* Static testing is when a designated constant load is applied for a specified time.
* Dynamic testing is when a variable or moving load is applied.
* Cyclical testing consists of repeated loading and unloading for specified cycles, durations and conditions.
The ''Supply of Machinery (Safety) Regulation 1992 UK'' state that load testing is undertaken before the equipment is put into service for the first time.
Performance testing applies a safe working load (SWL), or other specified load, for a designated time in a governing test method, specification, or contract. Under the ''Lifting Operations and Lifting Equipment Regulations 1998 UK'' load testing after the initial test is required if a major component is replaced, if the item is moved from one location to another or as dictated by the competent person.
Car charging system
A load test can be used to evaluate the health of a car's
battery
Battery most often refers to:
* Electric battery, a device that provides electrical power
* Battery (crime), a crime involving unlawful physical contact
Battery may also refer to:
Energy source
*Automotive battery, a device to provide power t ...
. The tester consists of a large resistor that has a resistance similar to a car's
starter motor
A starter (also self-starter, cranking motor, or starter motor) is a device used to rotate (crank) an internal-combustion engine so as to initiate the engine's operation under its own power. Starters can be electric motor, electric, pneumatic ...
and a meter to read the battery's output voltage both in the unloaded and loaded state. When the tester is used, the battery's open circuit voltage is checked first. If the open circuit voltage is below spec (12.6 volts for a fully charged battery), the battery is charged first. After reading the battery's open circuit voltage, the load is applied. When applied, it draws approximately the same current the car's starter motor would draw during cranking. Based on the specified
cold cranking amperes of the battery, if the voltage under load falls below a certain point, the battery is bad. Load tests are also used on running cars to check the output of the car's
alternator
An alternator is an electrical generator that converts mechanical energy to electrical energy in the form of alternating current. For reasons of cost and simplicity, most alternators use a rotating magnetic field with a stationary armature.Go ...
.
See also
*
Internet Application Management
*
Soak testing
Soak testing involves testing a system with a typical production load, over a continuous availability period, to validate system behavior under production use.
It may be required to extrapolate the results, if not possible to conduct such an exte ...
*
Stress testing
Stress testing (sometimes called torture testing) is a form of deliberately intense or thorough testing used to determine the stability of a given system, critical infrastructure or entity. It involves testing beyond normal operational capacity, ...
*
Structural testing
*
System testing
System testing is testing conducted on a complete integrated system to evaluate the system's compliance with its specified requirements.
System testing takes, as its input, all of the integrated components that have passed integration testing. ...
*
Web testing
Web testing is software testing that focuses on web applications. Complete testing of a web-based system before going live can help address issues before the system is revealed to the public. Issues may include the security of the web application ...
*
Web server benchmarking
Web server benchmarking is the process of estimating a web server performance in order to find if the server can serve sufficiently high workload.
Key parameters
The performance is usually measured in terms of:
*Number of requests that can be se ...
Ref