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

Performance Testing

with JMeter

Adam Goucher
http://adam.goucher.ca
adam_goucher@hotmail.com

Lecture Objective
Give students an introduction to
performance testing concepts and
implementation using JMeter.

Definitions

Performance Testing
Performance testing determines or validates
the speed of the AUT (X per T)

Load Testing
Load testing identifies the maximum
operating capacity of an application as
well as any bottlenecks that might interfere
with its operating at capacity
(Or, when does it blow up?)

Stress Testing
Stress testing is focused on determining an
applications robustness, availability, and
reliability under extreme conditions
heavy loads
high concurrency
limited computational resources

Scalability
Scalability testing determines or validates
whether adding another Y resource
(database, memory, disk, CPU, etc)
increases speed of X proportionally

Pre-testing Activities

Design Review
The cheapest performance issues to
address are ones that are never put into
the code.
Testers should review the application design
to see if there are any obvious potential
performance problems.

Environment Prep - Network


Performance testing is often a network
intensive activity which can affect others in
the organization
Testing should be done on a separate,
segregated network.

Environment Prep - Hardware


Depending on what your goals are for your
testing, different hardware is appropriate
for both the AUT and load generators.
Testers should acquire and configure the
correct hardware.

Environment Prep - Software


Generating load is not as easy as it sounds.
Testers should acquire or create load
generators and configure them for their
desired goal

Mission
Performance testing without a Mission is just
throwing load at a server to see what is
going to happen.
Testers should determine Why they are
doing their testing.

Audience
Determining who you are generating
numbers for, will largely dictate what you
do
Development
Marketing
Operations

Metrics
Performance testing is all about numbers
and metrics.
Testers should determine which metrics they
are concerned about and how to get them.

Give Warning
Let anyone who might be affected by your
testing advance warning.

Generic Testing Steps


1.
2.
3.
4.
5.
6.

Create / Record Test


Add measurement hooks
Data drive script
Add logging
Build workload profile
Execute test

JMeter

JMeter
JMeter is a free, open-source performance
measurement tool written in Java

Thread Groups
The Thread Group is the basic element of a
JMeter Test Plan
Each thread represents a user setting a
thread group to 1000 simulates 1000
users

Samplers
Samplers do the actual work in JMeter and
interact with the server you are loading
There are a number Samplers in JMeter by
default. For web testing, use HTTP
Request'

Listeners
The information produced by Samplers is
consumed by Listeners
Popular listeners are:
Graph Results
View Results Tree
Simple Data Writer

Logic Controllers
Logic Controllers determine the order that
Samplers are processed
More complex scripts will make use of
Loops
Interleave
Random
If

Assertions
A test isnt a test unless it checks something.
Assertions are what do the checking
For web applications, these are the useful
ones
Response
Duration
HTML Assertion

Configuration Elements
Configuration Elements set default values for other
parts of the Test Plan as well as configure
variables
CSV Data Set Config allows you do to DDT
within JMeter
HTTP Cookie Manager will automatically
intercept and sent cookies with requests
HTTP Request Defaults saves you time when
doing lots of HTTP Samplers

Variables
In JMeter, you can reference variables as
such

${VARIABLE}

Batch
JMeter can run in a non-gui mode to save
resources on the load generating
machines

Recording
There is a way to record tests (as in
LoadRunner) but I find it easier to build
scripts one element at a time

You might also like