Introduction to Performance Testing Basics

Welcome to Performance Testing Gyaan😀

Let's dive in to understand core concepts and terminologies used by Performance Engineers.

Performance Testing - The application's performance is tested when multiple users are accessing the application over a period of time. Performance testing involves checking the speed, reliability, scalability, stability, response time, and resource usage of an application under the anticipated workload. 

Performance Testing is a subset of Performance Engineering (PE). The core concepts remains the same for both. PE is basically the new approach that meets the rapid delivery demands of software applications. 

Read more on microfocus web site -> What is the Difference Between Performance Testing and Performance Engineering?

It is a continuous process and is done after functional testing is completed and therefore is a type of Non-functional testing. The motive is to find any performance issues before the application goes live into production. Some examples of performance issues are listed below- 

  • Slow transactions - These are transactions which have not met the Service Level Agreement (SLA). Example: If SLA of Login transaction is 2 sec, any value greater than 2 sec will put this transaction under the list of slow running transactions. Industry standards for web page loading is usually 2 sec.
  • High CPU Utilization - Common standards for Avg. CPU Utilization is max 70%.
  • Slow Api/Service calls - Common standard SLA's are max 1 sec.
  • Slow DB calls - Common standard SLA's are max 1 sec.
  • Memory Leaks - This happens when memory that is no longer needed, is not getting released over a period of time. As a performance engineer you will be monitoring memory utilization during the load test to ensure it gets released once the test is completed.

Non-functional Requirements (NFRs) - These type of requirements will tell how the system is supposed to be in contrast to functional requirements that define what a system is supposed to do. It covers systems 
  • Security
  • Performance
  • Usability
  • Maintainability 
  • Disaster Recovery
  • Compliance
  • Deployment
Read more on wikipedia -> Non-functional requirements


Terminologies - Lets look at some common terms widely used in performance testing,
  • Transaction: A business operation which may contain single action or a set of actions. For an e-commerce web site -examples are - Login, New customer Registration, Search Product, Add To Cart, Checkout, etc.

  • Load Test: Load refers to users who will be using the application. Load testing is all about testing your application when multiple users use the application. You use performance testing tools like Load Runner, Jmeter, NeoLoad, Visual Studio etc., to simulate load on the application.

  • Virtual users (Vusers): Since simulating load on the application with actual human users is not a feasible solution, the load is generated using testing tools therefore VUsers terminology is used.

  • Response Time: For web application , it is the time elapsed since the request was sent from the browser to the server, till the time the complete response for that request is received by the browser. The definition depends upon the type of operation being tested. It measures how fast and responsive an application is.

  • Throughput: It measures the rate at which operations are completed. For web apps, you will often be interested in- requests per second or transactions per second (TPS).
    Network throughput refers to how much data can be transferred from source to destination within a given timeframe.

  • Latency: It measures the delay between a user action and its response.
    One would mostly be referring to network latency i.e., delay in packet transmission from one point to other. It can be caused due to distance between the client and server, transmission medium, existing network congestion etc.

  • Bandwidth: It measures the maximum amount of data (channel capacity) that can be transferred on the network in a given amount of time.

    Speed, Throughput, Latency and Bandwidth are inter-related with one another. Read more on verizon site

Comments

Popular posts from this blog

Parameterization and Correlation (Load Runner, Jmeter and VSTS)

Capture traffic from Android Emulator using Fiddler