Performance Testing

You might also like

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 26

Performance Testing

What is Performance Testing?

 Verify that an application is able to perform under expected and


peak load conditions.
 There are three types of performance tests that share similarities
yet accomplish different goals:
i. Load Testing
ii. Stress Testing
iii. Capacity Testing

2
Continued…

 Load testing - Verify application behaviour under normal and peak


load conditions. This allows you to verify that your application can
meet your desired performance objectives.
 Stress testing - Evaluate your application's behaviour when it is
pushed beyond the normal or peak load conditions.
 Capacity testing - Determines server's ultimate failure point,
whereas load testing monitors results at various levels of load and
traffic patterns. For example, to accommodate future loads you
need to know how many additional resources are necessary to
support future usage levels.

3
Goals

 Validating that the application conforms to the performance needs of


the business.
 Identify bottlenecks and their causes.
 Optimize and tune the platform configuration (both the hardware
and software) for maximum performance.
 Verify the reliability of your application under stress.

4
Objecttives

 Response time or latency


 Throughput
 Resource utilization (CPU, network I/O, disk I/O, and memory)
 Workload

5
Response Time or Latency

 Amount of time taken to respond to a request.


 Latency measured at the server. This is the time taken by the
server to complete the execution of a request.
 Latency measured at the client. The latency measured at the
client includes the request queue, plus the time taken by the server
to complete the execution of the request and the network latency.
You can measure latency by two ways:
 TTFB
 TTLB

6
Throughput

 Throughput is the number of requests that can be served by your


application per unit time.
 It can vary depending upon the load (number of users) and the type
of user activity applied to the server.
 For example, downloading files requires higher throughput than
browsing text-based Web pages.

7
Resource Utilization

 Identify resource utilization costs in terms of server and network


resources. The primary resources are:
 CPU
 Memory
 Disk I/O
 Network I/O

8
Workload

 The load on the application as simultaneous users or concurrent


users.
 Simultaneous users have active connections to the same Web site,
whereas concurrent users hit the site at exactly the same moment.
Concurrent access is likely to occur at infrequent intervals. Your site
may have 100 to 150 concurrent users but 1,000 to 1,500
simultaneous users.

9
Why Performance Test?

 Speed - Does the application respond quickly enough for the


intended users?
 Scalability – Will the application handle the expected user
load and beyond? ( Capacity)
 Stability – Is the application stable under expected and
unexpected user loads? ( Robustness)
 Confidence – Are you sure that users will have a positive
experience on go-live day?

10
Performance Engineering

11
Why Performance engineering?

 Performance engineering is needed to ensure that applications


perform properly and perform to the needs of the business.
 Performance engineers need to understand the application under
test (AUT), databases, web servers, load balancers, SSO, etc....
 They also have to understand the impact of cpu, memory, caching,
i/o, bandwidth, etc.... These are not skills are learned overnight, but
skills that are acquired overtime.

12
Performance Engineering

13
Evaluate the System

14
Develop Test Assets

15
Baselines and Benchmarks

16
Analyze the Results

17
Tune

18
Exploratory Tests

19
Execute Scheduled Task

20
Complete Engagement

21
List of Performance Testing Tools

22
Tools-Load Runner

 Mercury interactive tool which tests the performance of an application.


 Enables you to test your system under controlled and peak load
conditions.
 Stresses your application to isolate and identify potential client
network and server bottlenecks.
 Primarily used for executing large numbers of tests (or a large number
or virtual users) concurrently. Can be used for unit and integration
testing as well.
 EXAMPLE : ATM

23
Summary

 We test performance to:


– Evaluate Risk.
– Determine system capabilities.
– Determine compliance.
 Performance Engineering Methodology:
– Ensures goals are accomplished.
– Defines tasks.
– Identifies critical decision points.
– Shortens testing lifecycle.

24
Queries

25
26

You might also like