Fundamentals of
PerformanceTesting
Ashapurna
Bhuvaneswari Subramani
– PerformanceTesting Overview
– PerformanceTesting -Why andWhen
– PerformanceTestingTypes
– PerformanceTesting Lifecycle
– Performance Measurements and Metrics
– Common Performance Bottlenecks
– PerformanceTesting vs Performance Engineering
Agenda
Introduction to
PerformanceTesting
Non-functional software
testing technique
Determines how the
stability, speed, scalability,
and responsiveness of an
application holds up under
a given condition
Identify the behavior of the
application and supporting
infrastructure under certain
condition
Maximum concurrent users
Memory utilization,
workload efficiency, and
command response times
What is PerformanceTesting
What is PerformanceTesting
Ø Server Side
Ø Client-Side Interaction
Ø Tool :
Ø CommercialTools: LoadRunner, Rational, Smart Bear
Ø Open Source: JMeter, Grinder
What is PerformanceTesting
What is PerformanceTesting
What is PerformanceTesting
Why andWhen we
need to do
PerformanceTesting
Why PerformanceTesting
• Company losses huge amount of money each year due to website
crash for sudden increase of load in Black Friday/Thanksgiving
sales.
• Example:You have a website which makes profit of $200,000 in a
peak hours(say 4 hours).So in peak hours the profit /hours is 50,000
.If the application get to see an unplanned downtime of 4 hours
then the revenue of $50,000 will be lost!
• An Akamai study found that nine percent of a site’s visitors never
return to a website they find down.
• Page speed influences purchases. Nobody likes slow-loading
website.
Why PerformanceTesting
• Poor Application
Experience
• Error while performing
critical Action under
heavy Load
• Application speed
changes as per the
Regions
Agileapproach:Start
performancetestingatthe
beginningofthe
developmentprocessand
continuewithitalongwith
thewholeevolutionofthe
application.
Waterfallapproach: Start
alltheperformancetesting
activitiesattheendof
development.
When should we start PerformanceTesting
PerformanceTesting
Types
Types of PerformanceTesting
Performance
Testing
Load
Testing
Stress
Testing
Soak
Testing
Chaos
Engineering
Spike
Testing
Volume
Testing
Types of PerformanceTesting
LoadTest: Expected/Max load induced to AUT and find out system behavior.
StressTest: Higher than expected load induced to AUT and find out system behavior.
SoakTest : Expected/Max load induced to AUT for longer period to look for long term effect like
memory leaks ,disk space filling up etc.
VolumeTest: HugeVolume of data induced to AUT to find out system behavior.
SpikeTest: How system cope up with sudden Spike
ChaosTesting: It is the activity of applying 'unexpected' or extreme circumstances to a software
system. This gives a measurement of how robustly the system can withstand such events outside the
production environment. It affords app developers the ability to identify and learn from failures
before they become outages
Example: Netflix: Netflix built a chaos testing framework once they moved to AWS in 2008.They
created Chaos Monkey .
PerformanceTesting
Lifecycle
Requirement
Gathering
Test
Planning
Scripting
Scenario
Design and
Execution
Analysis
and
Reporting
PerformanceTesting Life Cycle
Systematic process to
carry out the non-
functional testing
Goal has been set in the
beginning of the cycle
Performance
Measurements &
PerformanceTesting
Metrics
PerformanceMeasurements
Response
Time
Hit Per
Second
Throughput Error rates
ResponseTime:Total time from the moment user sends a request and gets the
response.
Hit-per-second: Number of request send to the server in one second.
Throughput : How many request has been processed by the server successfully.
Error Rate : Percentage of error generating request compared to total request.
PerformanceMeasurements
PerformanceMeasurements
ResponseTime
Minimum
Response time
Average
ResponseTime
Maximum
Response time
90th Percentile
§ Average ResponseTime: Average amount of time taken to complete one request.
§ Minimum ResponseTime: Maximum time taken to complete a request.
§ Maximum Response time: Minimum time taken to complete a request.
§ 90thPercentile: 90% of total iterations having response time <=n second
90th percentile = 1.5 which means 90% of total iterations having response time <=1.5 sec
R1 R2 R3 R4 R5 R6 R7 R8 R9 R10
1.6 0.8 1.5 0.9 1 0.9 1.2 1.1 1.3 1.4
R2 R4 R6 R5 R8 R7 R9 R10 R3 R1
0.8 0.9 0.9 1 1.1 1.2 1.3 1.4 1.5 1.6
Performance Measurements
KeyPerformanceTestingMetrics
Server-Side Metrics
• CPU Utilization
• Memory Utilization
• Garbage Collection
• Long Running Query
• Blocking Query
• Deadlock
Client-Side Metrics
• Page LoadTime
• Time to First Byte(TTFB)
• DOM content load time
• Page Size
• User Experience
Performance
Engineering vs
PerformanceTesting
PerformanceTesting Performance Engineering
Performance testing uncovers bugs and bottleneck
issues and provides analysis reports to developers for
resolution
Performance engineering is taking performance
concerns to the next level by helping developers to
meet business case requirements and industry
standards for speed, scalability, and sustainability.
Performance test engineer is typically the role that is
responsible for carry out performance testing. They
make use of various performance testing tools, either
on-premises or cloud-based, and take actions on their
observations.
Performance engineer is responsible for proactively
defining the industry standards and techniques to
build the system and then verify the performance
within each development stage.
Performance testing involves designing test cases
and executing them by performance test engineers
to determine website and application performance.
Performance engineering requires the active
involvement of performance engineers in the SDLC
for building a high-performance website or
application.
PerformanceTester
PerformanceTest Lead/Manager
Performance Engineer
PerformanceTest Architech
Performance Engineering vs PerformanceTesting
QA
Referenced Link
– https://www.appdynamics.com/blog/engineering/3-
common-application-performance-bottlenecks-and-
how-to-avoid-them/
– https://www.perfmatrix.com/
– https://www.stormforge.io/blog/types-performance-
testing/
– https://stackify.com/ultimate-guide-performance-
testing-and-software-testing/
Thank you!!
https://bhuvana.pro/
/bhuvanas
@installjournal
/ashapurna
Ashapurna
Bhuvaneswari Subramani

Fundamentals Performance Testing