Jump to content

Load testing

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Bbryson (talk | contribs) at 19:14, 16 December 2009. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Load testing is the process of putting demand on a system or device and measuring its response.

When the load placed on the system is raised beyond normal usage patterns, in order to test the system's response at unusually high or peak loads, it is known as stress testing. The load is usually so great that error conditions are the expected result, although no clear boundary exists when an activity ceases to be a load test and becomes a stress test.

There is little agreement on what the specific goals of load testing are. The term is often used synonymously with software performance testing, reliability testing, and volume testing.

Mechanical load testing

In mechanical systems it refers to the testing of a system to certify it under the appropriate regulations, e.g. Lifting Operations and Lifting Equipment Regulations (LOLER) in the UK. Load testing is usually carried out to a load 1.5 times the Safe Working Load (SWL). Periodic recertification is required.

Software load testing

The term load testing is used in different ways in the professional software testing 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 occurs with actual, rather than theoretical, results.

Load and performance testing is to test software intended for a multi-user audience for the desired performance by subjecting it with an equal amount of virtual users and then monitoring the performance under the specified load, usually in a test environment identical to the production environment, before going live. For example, if a web site with a shopping cart is intended for 100 concurrent users who are doing the following functions:

  • 25 Virtual Users (VUsers) are browsing through the items and logging off
  • 25 VUsers are adding items to the shopping cart and checking out and logging off
  • 25 VUsers are returning items previously purchased and logging off
  • 25 VUsers are just logged in without any activity

Some times it is also referred to as Non-Functional Testing

Using various tools available to generate these VUsers, the application is subjected to a 100 VUser load as shown above and its performance is monitored. The pass fail criteria is different for each individual organization and there are no standards on what an acceptable criteria should be, across the board. As a matter of fact, in the list above item 1 the each of the 25 Virtual users could be browsing through unique items that other virtual users will not browse through.

It is a common misconception that these are record and playback tools like regression testing tools. Load testing tools work at the protocol level whereas most regression testing tools work at the GUI object level. For example, a regression testing tool will simulate a mouse click on an OK button on the browser, but a load testing tool will send out the hypertext that the browser will send after the user clicks the OK button, and again it will send out the hypertext for multiple users each having a unique login ID and password.

Various tools are also available to find out the causes for slow performance which could be in the following areas:

  • Application
  • Database
  • Network
  • Client side processing
  • Load balancer

With the popularity of the web, especially the acceptance of Business-to-business (B2B) applications, there are sometimes Service Level Agreements (SLA) involved. B2B applications' popularity has resulted in more and more applications moving to Web Services, where there is exchange of information without a browser interface. An example of a typical service level would be a travel agency inquiring the Airline's Web Service on availability of tickets for a particular flight from Chicago to Dallas, and the Airline would be bound by the SLA to respond within 5 seconds. Often, there are large penalties involved if SLAs are not met.

Tool Name Company Name Notes
IBM Rational Performance Tester IBM Eclipse based large scale performance testing tool primarily used for executing large volume performance tests to measure system response time for server based applications. Licensed.
JMeter An Apache Jakarta open source project Java desktop application for load testing and performance measurement.
LoadRunner HP Performance testing tool primarily used for executing large numbers of tests (or a large number or virtual users) concurrently. Can be used for unit and integration testing as well. Licensed.

Car Charging System

A load test can be used to evaluate the health of a car's battery. The tester consists of a large resistor that has a resistance similar to a car's starter motor 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 amps 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.

See also

References