JMeter Tutorial 1: Introduction to Performance Testing

Introduction to Performance Testing

1) Introduction to Performance Testing
i) What is Performance Testing?
ii) Types of Performance Testing
iii) How to conduct Performance Testing
iv) Performance Test Tools
v) Performance Test Life Cycle

i) What is Performance Testing?

It is a Test Type/Software Test Type,

> Level of Testing: System Testing

> Type of Testing: Non-functional Testing
Performance Testing
Load Testing, Stress Testing, Spike Testing and Endurance Testing

> Way of Testing/Testing Method: Automated Testing or Test Automation

> Test Design: Black Box Test Design
———————————————–
Basically we have four types of Software Testing,

1) Functional Testing
2) Non Functional Testing
3) Structural Testing
4) Change Related Testing (Re & Regression Testing)

> Functional Testing: Checking the Functionality of a component or System with respect to Functional Requirements

> Non Functional Testing: Checking Quality Attributes of a component or System with respect to Non-functional Requirements.

Quality Attributes:

Performance,
(Load, Stress, Spike, Endurance etc…)

Usability,

Recovery,

Compliance,

Localization

Internationalization, Etc…
————————————————————
Performance Testing: It is a non-functional test type performed to determine the system parameters
in terms of responsiveness and stability under various workload.
————————————————————
> Functional Testing Vs. Performance Testing

Functional Test Requirement: User Login to xyz Application

Functional Testing:
Login to xyz Application using valid user name and valid password -Positive Scenario (Application Home Page)
Login to xyz Application using invalid user name and invalid password -Negative Scenario (Error Message)

Performance Test Requirement: 5000 concurrent Users Login to xyz Application.

ii) Types of Performance Testing

a) Load Testing:
> It’s a type of performance testing that simulates real-world load on software applications. Increasing number of concurrent users, transactions and check the behavior of application under test.

Ex: Login to xyz Application with increasing multiple users Load (2000, 3000, 4000….)(Expected: Login within 6 Seconds) – Load Testing
———————————————
b) Stress Testing 
It involves testing an application under extreme workloads to see how it handles high traffic or data processing. The objective is to identify breaking point of an application.

Ex: Login to xyz Application with maximum load and more than the capacity (10000, 11000…) -Stress Testing
———————————————
c) Spike Testing
Tests the software’s reaction to sudden large spikes in the load generated by users.

Ex: Login to xyz Application with sudden increments/decrements of Load (1000, 7000, 2000…) – Spike Testing
———————————————
d) Endurance Testing
It is done to make sure the software can handle the expected load over a long period
of time.

Ex: Login to xyz Application with multiple users over a period of Time
(5000 Users for 2 Hours/repeat Login operation for 5000 users for 2 hours of Time) – Endurance Testing
———————————————
e) Volume Testing 
Under Volume Testing large no. of. Data is populated in database and the overall software system’s behavior is monitored.
Etc…

iii) How to conduct Performance Testing?

Generally, Software Testing can be done in two ways,

1) Manual Testing
2) Automated Testing

Ex: We can conduct Functional Testing manually or using Test Tools like UFT or Selenium etc…

But Manual Testing is impractical for performance Testing, Automated Testing is only possible.

iv) Performance Test Tools

Popular Test Tools for Performance Testing:

1) Micro Focus LoadRunner
LoadRunner is a commercial software test tool from Micro Focus. HP acquired LoadRunner as part of its acquisition of Mercury Interactive in November 2006, In Sept 2016, Hewlett Packard Enterprise announced it is selling its software business, including Mercury products, to Micro Focus. As of 01-Sept-2017, the acquisition was complete.

LoadRunner supports Computer and Mobile Applications performance testing.
———————————————
2) Apache JMeter
The Apache JMeter application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance.
———————————————
3) IBM RPT
Rational Performance Tester is a tool for automated performance testing from the Rational Software division of IBM.

4) Silk Performer
Silk Performer is a software performance testing tool across web, mobile and enterprise applications. It was originally developed by Segue Software which was acquired by Borland in 2006. Borland was acquired by Micro Focus International in 2009.

5) WebLoad
WebLOAD is load testing tool, performance testing, stress test web applications. This web and mobile load testing and analysis tool is from RadView Software.

6) NeoLoad:
NeoLoad is a performance test tool of web and mobile applications.

7) OpenSTA

JMeter Tutorial for beginners

v) Performance Test Process (Automated Test Process)

Important Steps:

1) Identify the Testing Environment.

> Identify the hardware, software, network configurations and tools for conducting Performance testing.

2) Identify Performance Metrics.

> Identify metrics such as response time, throughput and constraints and identify what is the success criteria for performance testing.

3) Plan and Design Performance Tests.

> Identify performance test scenarios that take into account user variability, test data, and target metrics.

4) Configure the Test Environment.

> Prepare the elements of the test environment and instruments needed to monitor resources.

5) Implement your test design.

> Record Test Scripts, Create and Apply multiple users (Virtual users) Load

6) Execute Tests.

> Run Performance Tests

7) Analyze, tune and retest.

> Analyze Test Results, then fine tune and test again to see if there is an improvement or decrease in performance.
————————————————————————————————
JMeter Step by Step Videos

Follow me on social media: