Perfomance Testing L1
Perfomance Testing L1
4 Load Metrics
4.a HTTP Status Codes – Types
4.b HTTP Status Codes – explained
4.c Typical Load test metrics – server based
4.d Typical Load test metrics – user based
4.e Results Evaluation
4.f Performance Monitoring Counters
4.g Provisions for Performance Test Engineer
4.h Tools for Performance Testing
Performance Testing:
designed to test the overall performance of the system at high load and
stress conditions
occurs through out the software development life cycle to isolate
performance related constraints
even at unit level, the performance of the individual module may be
assessed as the internal logic of software that is being tested.
Approved Performance
Requirements requirement document
R
R
Approved Performance
a
Forecast Plan
/ Design
Assurance Test Plan
Validation of scripts
Performa Develop
and data.
Modeling
nce Scripts
Assurance
R
Lifecycle
Execute Smoke, Baseline and all
Tuning planned test are executed
/Monitor and monitored.
• The testing process should start from the requirements collection phase itself.
• Skill set to plan and conduct Performance Testing is not adequately available. It is a
late activity, and duration available for testing is not adequate. However, testing the
system for an optimal performance is a challenge and an opportunity.
Illustration
Response time for a request made on http://abc.com website takes 4.03
seconds
Home -> Search Flight -> View Flight / Reserve Flight / Cancel
Flight -> Exit
How much time people spend at every action (3-5 s) ==> called
as think time
Research shows that 8 seconds is the threshold after which customer gets
Frustrated!!!
Browser threads:
A thread is a path of execution through an application. In the
case of web browsers, this path consists of sending a request,
receiving the response and displaying the object. Each thread
operates independently.
Browsers usually do not follow redirections more than five times, since a high
number of redirections could indicate a infinite loop.
Document Cache:
Document cache is a location on the user’s computer where a web
browser temporarily stores downloaded web pages. This is a way to
speed up page downloading times and to reduce traffic on the network
• Estimating Target Load Levels: Once you have identified the current
load levels, the next step is to understand as accurately and as
objectively as possible the nature of the load that must be generated
during the testing.
• how the overall amount of traffic to your Web site is expected to grow
• the peak load level which might occur within the overall traffic
• how quickly the number of users might ramp up to that peak load
level
• how long that peak load level is expected to last
3 Basic Elements
All performance measurement experiments require three basic elements:
• the system under test (SUT),
• load generators (driver) that apply a workload to the SUT, and
• instrumentation to collect performance data.
Depending on the experiment, load generation could be implemented by
special-purpose hardware, software running on separate system, or even
a
Process running on the SUT. Care should be taken to ensure the
performance bottleneck lies in the SUT, not the load generators!
• Test Servers
Customers will not allow load tests to be performed on
productions systems since the high load levels would interfere
with production activities. Also, production activities may skew
the load test results.
Databases
The database(s) in the test lab must be pre-loaded with either a
copy of production data or dummy data that is similar in size
and content to the production data. Databases that are too
small will tend to give erroneously fast results and can obscure
table scan and index problems
• 1xx Informational
This class of status code indicates a provisional response, consisting only of the Status-Line and optional headers,
and is terminated by an empty line. Since HTTP/1.0 did not define any 1xx status codes, servers must not send a 1xx
response to an HTTP/1.0 client except under experimental conditions.
• 2xx Success
This class of status codes indicates the action requested by the client was received, understood, accepted and
processed successfully.
• 3xx Redirection
This class of status code indicates that further action needs to be taken by the user agent in order to fulfil the request.
The action required may be carried out by the user agent without interaction with the user if and only if the method
used in the second request is GET or HEAD. A user agent should not automatically redirect a request more than five
times, since such redirections usually indicate an infinite loop.
• Number of hits
• Demographics
• Client information such as browser, browser version, Java script support, Java script enable/disable, and so on.
• Number of users
• Session length
• User activities and frequency of activities per session
• Think/Read/Data-input time
• Percentage by functional group
• Percentage by human speed
• Percentage by human patience (cancellation rates)
• Percentage by domain expertise (speed)
• Percentage by familiarity (speed)
• Percentage by demographics (arrival rates)
Often the first indication that something is wrong is the end user
response times start to climb. Knowing which pages are failing
will help you narrow down where the problem is.
(1) Knowledge
Project Management Plan (Performance Agreements, Service
Level Agreements)
Infrastructure Topology (Server, details, versions of SW,
communication frequency)
Database Schemas (and access rights!)
Installation and Configuration Notes
Requirements, Design documents and developer notes
Sequence of User action (derived from use cases)
Approval from Functional Testing
(2) Hardware
• Load Testing Servers
• Load Testing Clients (Hosts)
• Load Balancer (Optional)
• External Storage (Discs)
(4) Software
• Load testing software
• Installation Package storage and Locations
• Access to CVS, VSS for the source code
• Special Programming software for the Load testing