Chapter09 - How To Test Performance
Chapter09 - How To Test Performance
Scalability
Testing
Types of Performance Testing
• Load testing – checks the application’s ability to
perform under anticipated user loads. The objective is to
identify performance bottlenecks before the software
application goes live.
• Stress testing – involves testing an application under
extreme workloads to see how it handles high traffic or
data processing. The objective is to identify the breaking
point of an application.
• Endurance testing – is done to make sure the software
can handle the expected load over a long period of
time.
Types of Performance Testing
• Spike testing – tests the software’s reaction to sudden
large spikes in the load generated by users.
• Volume testing – Under Volume Testing large no. of.
Data is populated in a database and the overall
software system’s behavior is monitored. The objective
is to check software application’s performance under
varying database volumes.
• Scalability testing – The objective of scalability testing
is to determine the software application’s effectiveness
in “scaling up” to support an increase in user load. It
helps plan capacity addition to your software system.
Common Performance Problems
Poor Poor
response scalability
time
Long Bottlen
Performance
Load ecking
Problems
time
Common Performance Problems
• Long Load time – Load time is normally the
initial time it takes an application to start. This
should generally be kept to a minimum.
• Poor response time – Response time is the
time it takes from when a user inputs data into
the application until the application outputs a
response to that input.
Common Performance Problems
• Poor scalability – A software product suffers
from poor scalability when it cannot handle the
expected number of users or when it does not
accommodate a wide enough range of users.
• Bottlenecking – Bottlenecks are obstructions
in a system which degrade overall system
performance. Bottlenecking is when either
coding errors or hardware issues cause a
decrease of throughput under certain loads.
Performance Testing Process
Performance Testing Process
• Identify your testing environment – Know your
physical test environment, production environment and
what testing tools are available. Understand details of
the hardware, software and network configurations used
during testing before you begin the testing process.
• Identify the performance acceptance criteria – This
includes goals and constraints for throughput, response
times and resource allocation. It is also necessary to
identify project success criteria outside of these goals
and constraints.
Performance Testing Process
• Plan & design performance tests – Determine how
usage is likely to vary amongst end users and identify
key scenarios to test for all possible use cases.
• Configuring the test environment – Prepare the
testing environment before execution. Also, arrange
tools and other resources.
• Implement test design – Create the performance tests
according to your test design.
• Run the tests – Execute and monitor the tests.
• Analyze, tune and retest – Consolidate, analyze and
share test results. Then fine tune and test again to see if
there is an improvement or decrease in performance.
Performance Testing Metrics:
Parameters Monitored
Performance Testing Metrics
• Processor Usage – an amount of time processor
spends executing non-idle threads.
• Memory use – amount of physical memory available to
processes on a computer.
• Disk time – amount of time disk is busy executing a read
or write request.
• Bandwidth – shows the bits per second used by a
network interface.
Performance Testing Metrics
• Memory pages/second – number of pages written to
or read from the disk in order to resolve hard page
faults.
• CPU interrupts per second – is the avg. number of
hardware interrupts a processor is receiving and
processing each second.
• Disk queue length – is the avg. no. of read and write
requests queued for the selected disk during a sample
interval.
• Network output queue length – length of the output
packet queue in packets. Anything more than two
means a delay and bottlenecking needs to be stopped.
Performance Testing Metrics
• Network bytes total per second – rate which bytes are
sent and received on the interface including framing
characters.
• Response time – time from when a user enters a request
until the first character of the response is received.
• Throughput – rate a computer or network receives
requests per second.
• Amount of connection pooling – the number of user
requests that are met by pooled connections.
• Maximum active sessions – the maximum number of
sessions that can be active at once.
• Database locks – locking of tables and databases needs
to be monitored and carefully tuned.
Example Performance Test Cases
1. Verify response time is not more than 4 secs when 1000 users
access the website simultaneously.
2. Verify response time of the Application Under Load is within an
acceptable range when the network connectivity is slow
3. Check the maximum number of users that the application can
handle before it crashes.
4. Check database execution time when 500 records are read/written
simultaneously.
5. Check CPU and memory usage of the application and the
database server under peak load conditions
6. Verify response time of the application under low, normal,
moderate and heavy load conditions.
Performance Test Tools
• LoadNinja – is revolutionizing the way we load test. This
cloud-based load testing tool empowers teams to record
& instantly playback comprehensive load tests, without
complex dynamic correlation & run these load tests in
real browsers at scale.
• HeadSpin– offers industry’s best performance testing
capabilities for its users.
Performance Test Tools
• HP LoadRunner – is the most popular performance
testing tools on the market today. This tool is capable of
simulating hundreds of thousands of users, putting
applications under real-life loads to determine their
behavior under expected loads. Loadrunner features a
virtual user generator which simulates the actions of live
human users.
• Jmeter – one of the leading tools used for load testing
of web and application servers.
Q&A