What is Performance Testing?

YouTube Video: Performance Testing

What is Performance Testing?

“Performance testing is a systematic testing approach to validate the performance of an application under load.”

In the above definition, two important words appear. One is ‘Performance’ and another one is ‘Load’. The word ‘Performance’ refers to the behaviour of an application in terms of responsiveness and stability. The other word ‘Load’ refers to the burden on an application in terms of the real-world user count. Hence performance testing is conducted to determine the responsiveness and stability of an application when the real-world user load is applied.

Basically, performance testing comes under quality assurance checks of a software/application in which speed, capacity and stability are the major checks. Software Quality Assurance has two categories:

  1. Functional Testing
  2. Non-Functional Testing

Performance Testing is a kind of Non-Functional Testing in which more preference is given to the user load and quick response instead of the correctness of the output. Functional Testing has a responsibility to check the correctness of the output. For example, when a customer places an online order then he should get a correct order number. This is a functional check. And, he should get the order number within 1 second. This is a performance check.

Here, do not conclude that Performance Testing does not require functionality correctness. Only functional tested code is deployed in the performance test environment so that code becomes free from functional bugs. Hence functional testing phase always comes prior to the performance testing phase.

Type of Performance Testing:

Performance Testing is a very generic term. Under performance testing, there are many types of tests. Each test has a specific performance goal. Following is the list of performance test and relative goals:

  1. Load Test: To determine the performance of an application at peak user load
  2. Stress Test: To determine the performance of an application at future expected user load
  3. Soak Test: To find-out the memory leakage in the server at average user load
  4. Spike Test: To determine the performance of an application at sudden user load
  5. Breakdown Test: To identify the break-point of an application
  6. Step-up Test: To find out the performance of an application at the different user load in the same test
  7. Volume Test: Specially designed for batch performance testing

Generic Approach:

Performance Testing simulates the real-world user load on the server and identifies the performance of the system in terms of:

  1. Users Load
  2. Response Time
  3. Request Rate

These are the very generic metrics which are used in performance testing. To understand the performance testing approach in detail refers to Performance Testing Life Cycle.

A performance tester conducts the performance testing with the help of a specific testing tool known as Performance Testing Tool. Some of them are LoadRunner, JMeter, NeoLoad etc. These tools help to script-out the business flows and generate the desired load on the servers. The monitoring tools like SiteScope, DynaTrace, AppDynamics etc. monitor the server performance. At the end of the test, performance tester analyses the test result and highlight the defects (if any). The defect identified during performance testing is known as Bottleneck. The software development team (developer) has a responsibility to resolve these bottlenecks and fine-tune the application.

Performance Testing Tools:

Many Performance Testing tools are available in the market. They can be simply categorized in:

  1. Open Source: Free of cost
  2. Licensed: Need to purchase the license before use. The free trial version may be available.
  3. Hybrid: These cloud-based tools support the open source scripting tool and execute the test on the cloud. Some of the tools have their own dedicated scripting tool.

Some famous Performance Testing tools:

  1. LoadRunner
  2. JMeter
  3. NeoLoad
  4. WebLoad
  5. LoadNinja
  6. LoadView
  7. LoadUI Pro
  8. WAPT
  9. LoadComplete
  10. Testing Anywhere
  11. Rational Performance Tester
  12. Gatling
  13. K6
  14. LoadImpact
  15. The Grinder
  16. Tsung
  17. Locust
  18. Curl-Loader
  19. Xceptance XLT
  20. Loadster

Example:

Case 1:

PerfMate carries-out the performance testing of an e-commerce application to measure the performance of the application under load. He got the following requirements (Non-Functional Requirements):

  1. Check the performance of the application at 1000 user load
  2. Response time for any page should not exceed 3 seconds
  3. 1000 users should place 3000 orders per hour
  4. CPU utilization percentage should not more than 60% in any test
  5. Memory utilization should not exceed 15% of non-testing period utilization
  6. Failure order count should not more than 10 in an hour

1000 users load is a peak time load on the application. Hence PerfMate conducts a load test with the above-given requirements and prepares an interim performance test report at the end of the test.

Case 2:

He got another requirement to test the same application:

  1. Check the performance of the application at 1500 user load
  2. Note down the response time of the application at 1500 user load
  3. 1500 users should place 4500 orders per hour
  4. CPU utilization percentage should not more than 80% in any test
  5. Memory utilization should not exceed 20% of non-testing period utilization
  6. Failure order count should not more than 15 in an hour

1500 users load is a future load expected on the application. Hence PerfMate conducts a stress test with the above-given requirements and prepares an interim performance test report at the end of the test.

Case 3:

The last requirement he got for the same application is:

  1. Check the performance of the application at 750 user load for a longer duration
  2. Response time for any page should not exceed 3 seconds
  3. 750 users should place 2250 orders per hour
  4. CPU utilization percentage should not more than 60% in any test
  5. Memory utilization should not exceed 15% of non-testing period utilization
  6. No memory leakage
  7. Failure order count should not more than 8 in an hour

750 users load is an average user load on the application. PerfMate conducts a soak test for this requirement to find out the memory leakage. Soak Test is a longer duration test which lasts 6 to 24 hours. At the end of the test, PerfMate prepares an interim performance test report.

When all the tests are finished then PerfMate collects the test results and prepares a single test report. This test report provides a final decision about whether the application should GO-Live or not. This report is called as Final Performance Test Report.


You may be interested:


8 thoughts on “What is Performance Testing?”

    • Hi Shivani,

      You can add the file using ‘Extra Files’ option under Solution Explorer.
      1. Right-click on ‘Extra Files’
      2. Choose ‘Add Files to Script…’ option.
      3. Browse and select the file.
      4. The file will get added.

      Reply
  1. Average response time is 15 sec which includes pacing and RT , 400 transaction per minute we have to achieve , so how many virtual users we need to put????

    Reply
  2. How to achieve this??? Pls help..
    There are 2 actions…I want to apply 70 % of the load on action1 and 30% of the load on action2…
    How to do this???

    Reply
  3. Hi Team,

    We are working on a project for our client in which we need to do Performance Testing of their Investment Banking website (high users and lots of data). Our Client are present Globally so we need to do Geo-Location Tracking and will also be working on DB testing.

    Is JMeter the best tool in this scenario or is there any other open source tool we can use?
    Also, how should we be approaching our testing as we need to work with 100s of users from different locations (globally)?

    Reply

Leave a Comment