18Jan

Introduction to Load Testing

 

Well, before learning what is Load testing. Let us discuss briefly the performance testing.

 

What is Performance Testing?

Performance Testing of an application is basically the process of understanding how the application and its operating environment respond at various user load levels. The Response Time, Throughput and Utilization of the Processor would be measured while simulating attempts by virtual users to simultaneously access the application. One of the objectives of Performance Testing is to maintain an application with low response time, high throughput and low utilization. Load Testing and Endurance testing are the phases of Performance testing. Load Testing is conducted to find the bottleneck of an application. Endurance Testing is conducted to find the reliability and memory leakage of an application.

Performance testing

 

Introduction to Load Testing

Load Testing is a type of Performance (Non-Functional) testing. Load testing help us understand the performance or behaviour of an application/server when various loads are applied. Load testing need to be prformed in normal and peak load conditions.

The aim of load testing is to find the system behaviour when different loads are applied. Load test

 

Load testing help us understad following points:

  • The updated codes perform as intended.
  • Changes in hardware configuration work as required.
  • The upgrade system environment works well under provided restrictions.

 

Designing the Test Scenarios

Start creating the the scripts when the work load design is available.

Once the actions are recorded, next is to develop the scripts. Following points should be considered in development stage:

  • Think time
  • Load pattern
  • Browser settings
  • Network settings
  • Counter settings
  • Runtime settings
  • Data Parameterization
  • Comments
  • Run logic

 

Load Test Execution

Below are the steps that are carried out during Load Testing.

  • ReInstate database instance
  • All load generating machined to be restarted
  • Warm-up the scripts to confirm their functionality
  • Execute of scripts
  • Real time monitoring
  • Save test results
  • Collate and analyze the test results
  • Save the application and database server logs
  • Collate all performance counters monitored
  • Test Result reporting

 

Entry Criteria for Load testing

Following are some of the key points that should be considered before starting the Load testing:

  • Regression testing should be completed.
  • Application should be defect free and stable.
  • Database setup should be completed.
  • Test monitoring tools should be installed in prior test execution.
  • Turn off the load generators which consume more memory and CPU.

 

Exit criteria of Load Testing

Following are the points that should be considered post successful execution of the testing.

  • All the performance test cases should be validated
  • Verify all test scenarios have been executed successfully
  • Response time, throughput, CPU utilization and load should be captured for all transactions on each test run
  • Test results should include all necessary graphs for system resources and application metrics specified in the requirement document
  • All the test types defined in the test plan should have been executed successfully

Load testing process

Analyse load test results

Following are the important metrics that needs to be monitored during load testing:

  1. Response time – Time required to respond for a request.
  2. Throughput – How many transactions per seccond.
  3. CPU Utilization – Percentage of CPU utilized
  4. Memory Utilization – Percentage of memory utilized
  5. Network Utilization – Percentage of network bandwidth utilized
  6. User load – Maximum number of users the application can withstand

When all the above metrics are obtained, analyse the results as said below:

  1. Analyze the captured data to identify performance issues and bottlenecks.
  2. To identify the root cause of a problem, start tracing from where you first notice the symptom.
  3. Analyze the captured data and compare with previous results against the requirement metric's

The following are the Load testing standards to be considered while generating the test reports.

  1. Throughput versus user load.
  2. Response time versus user load.
  3. Resource utilization versus user load.

 

Risks and Mitigations

To avoid confusions during load testing, following are some of the mitigations that should be considered:

Description of Risk

Impact

Mitigation

Performance issues related to the tool.

Testing execution gets interrupted.

Approach tool support team

Issues related to Test data

Testing execution gets interrupted.

Test data team should be contacted

Unsteady Application issue

 

Testing execution gets interrupted.

Serious issue should be upraised with clients

 

Lack of required resources

 

Testing execution gets interrupted.

Advance report should be submitted to clients

Major changes endorsed post performance testing

 

Additional effort is required

 

Re-run performance testing with revised scripts.

 

Load Testing Benefits:

  • Determines the throughput required to support the anticipated peak production load.
  • Improve deployment quality
  • Detects functionality errors under load
  • Improve scalability of the application
  • Detects concurrency issues
  • Helps to determine how many users the application can handle before performance is compromised.
  • Helps to determine how much load the hardware can handle before resource utilization limits are exceeded.

 

Glossary of Terms

  • Response Time: Response Time is the delay experienced when a request is made to the server and the server’s response to the client is received. It is usually measured in units of time. Generally Response time increases as the inverse of utilized capacity. It increases slowly at low levels of user load, but increases rapidly as capacity is utilized.
  • Throughput: Throughput refers to number of client requests processed with in a certain unit of time. Typically the unit of measurement is request per second of pages per second.
  • Utilization: Utilization refers to the usage levels of different system resources, such as server’s CPU’s, memory, network bandwidth and so forth. It is usually measured as a percentage of the maximum availability level of the specific resource.
  • Think Time: Think time is the time introduced in the test script which will allow all the virtual users to put request to the server after being idle for the specified amount of time (msec or sec).
  • Concurrent Users: The virtual users are said to be concurrent users when there is no wait time introduced between the users to put request to the server.
  • Simultaneous Users: Virtual users are said to be simultaneous users when the vuser take fraction of second or the specified sleep time/think time to put request to the server.
  • Service Demand: Service Demand=( CPUusage/Throughput) seconds

      It is the time required for the processor to process one request.

i.e.,: If the Throughput is 300 and Service Demand is 0.003sec then the processor requires 30msec to process one request out of 300Requests

  • Total Requests: The total number of Web test requests issued during the load test run. The total includes passed and failed requests, but does not include cached requests, because they are not issued to the Web server.
  • Total Tests: The total number of tests run during the load test. This includes the number of times tests passed and failed.
  • Tests/Sec: The rate per second of tests during the load test run.
  • Failed Tests: The number of tests run during the load test and failed. The entries in this column appear as hyperlinks. You can click any hyperlink to view a list of the individual errors in the Load Test Errors dialog box.

Related

What is Defect? Defect Life Cycle in Software Testing.

Defect is an unexpected behavior of the software application flow against the requirement specificat...

Read More >

What are Frames? How to handle frames in Selenium WebDriver with C#?

IFrame (FullForm: Inline Frame) is an HTML document that is included in another HTML document and is...

Read More >

What is Synchronization? Handling Synchronization in Selenium WebDriver using C#:

Synchronization meaning: when two or more components involved to perform any action, we expect these...

Read More >

Sending Test reports by Email using Office 365, Gmail

Wouldn’t it be great if Test Report are sent automatically across team as soon the Test Execut...

Read More >

Extent Reports in Selenium CSharp (C#)

Reports play a fundamental role when it comes to TESTING. Tester can now  know the real-time r...

Read More >

How to Set Up Selenium WebDriver in Visual Studio Enterprise 2015?

Pre-requisite : Visual Studio Enterprise 2015 application should be installed into the system.Create...

Read More >

Assertions in Coded UI

Let us discuss how to add assertions in coded UI. Assertions are checkpoints/benchmarks to UI c...

Read More >

Analysis of Load Test Results

Analysis of Performance DataAfter you capture and consolidate your results, analyze the captured dat...

Read More >

Parallel Execution using Selenium Webdriver and TestNG

While testing a web application it is very important to test the application on different browsers. ...

Read More >

Share

Post a Comment

  • Recent
  • Popular
  • Tag
Tags
Monthly Archive
Subscribe
Name

Contact Us
  • *
  • *