Are you also having same question as that of John ?
John : I am clueless how do i get started with performance testing ?
John : What do I need to know about web application before getting started ?
John : What are the tools that can help me understand my application ?
John : How do performance testing tool work ?
John : How do I choose a right tool for performance testing ?
John : How do i come up with various scenarios ?
Well then you are at right place .
4. Adam : Performance tester
John : Adams friend
John : Awesome Adam. That mean we would
know the impact on server when there are tons
of user accessing our site
Adam : Exactly you got that right.
@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
5. John : So if you say the response time is 3 sec
for 100 users that mean when I access the site I
will see that page in 3 sec
Adam : Wait wait wait !!!! Hold on, dont
conclude that so easily. Let understand few
more thing before that.
Lets see our next slide
@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
6. Adam : John there are following things
Network latency
Server processing time
Browser Rendering
John : Btw can you give more insight to it
Adam : Sure. Lets see our next slide
@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
7. Adam : Lets take an example of www.google.com . And
understand few basic things
Server
<html>
<head>Google</head>
<body>
Result found..
</body>
</html>
@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
8. Performance testing
Traditionally referred to as server side
performance testing
But now a days client side performance
testing has also gained importance
Heavy Java Scripting.
CSS 3 & HTML5 empowering browsers.
Browser getting more and more smarter in rendering
pages and increasing user experience
Ideally
Performance testing = Server Side + Client Side
@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
9. Scope
Only serve side performance testing
Journey from the moment GET request is sent till
HTTP Response is received
Network latency + Server processing time
Will talk mostly about how to approach
performance testing activity
If time permits talk about JMeter
@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
10. Before getting started
Know the business cases: This will help you in
designing the test scenarios
The type of application : Web , Web Service
Audience that will be using : LAN , Intranet
, Internet, Internet but public site
***Explore your application with some
packet capturing tool. e.g. Fiddler , Paros
i.e. Study your application in-depth
@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
11. Tool Selection
JMeter (Open Source)
OpenSTA (Open Source)
Load Runner (Commercial)
Silk Performer (Commercial)
VSTS - Web Test (Commercial)
LoadUI (Commercial)
Many More . . . . . .
@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
12. John : So now i have understanding of
business scenarios also we decided upon tool.
So whats next
Adam : Now most important part of
performance test. Capturing the Test
Requirements.
It will serve as input to test plan
@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
13. Ask few question to business
What are the concurrent user(session active) we are expecting
our application to handle?
What are the active user(doing some action) we expect our
application should handle?
What would be the peak load (maximum)on our application ?
What would be the peak time(s) (timestamp/timestamps) we
expect our application will get max load ?
What would be the response time we are expecting our
application should serve ?
How long we expected our application to work without any
failures ?
And if failure occur what is the acceptable failure rate ?
How frequently will the web server restart ?
Requirement Gathering
@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
14. How to design test case
Identify real world business scenarios, always
give priority to them
Use power of Randomize
Don't forget think time
Lets look at the PMRW script
@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
15. Now look for your real time test data. Make
it your benchmark
Best practice is to keep same test data for
each execution.
Automate your pre-requisite
o Write db scripts.
After execution bring back the system to it
previous state. Post-requsite
o Clean up activities
Test-Data Benchmarking
@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
16. Hardware Benchmarking
Now decide upon hardware against which
you want to do performance testing
o Server Configuration [Processors/RAM/etc.]
o OS
o Software (e.g. tomcat, java, etc.)
o DataBase (version)
o If clustered environment (number of nodes,
they way load balancer is configured)
i.e Overall all configuration of system
@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
17. Execution/Type of tests
For various test types
Endurance (time)
Step-up Load (user load)
Spike Load (user, time)
Monitor Server : cpu, memory
Strategy that can be used for each above type
What load : e.g. Endurance test for various loads
(e.g. 50 , 75 , 150 , 350 , 600 , 900 ,etc.)
Duration : various time duration (e.g. 6hrs ,
18 hrs , 24hrs , 30 hrs , etc )@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
18. Execution (contd...)
Distributed load
Number of nodes
Load on each node
Lets talk more about in one of the upcoming
slide
@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
19. Setup Hardware
Setup Test Data
Run Test
Publish Results
Mark as new
BenchMark
next Iteration
Finish
No
Ye
sReason for Iteration
New Release
Hardware Change
Configuration change
Results unacceptable [first iteration]
Or
Performance Deterioration [benchmark]
Yes
Performance Improvement/
Tuning/
Server monitoringOnly one at a time
No
i.e if performance
improvement
Life Cycle@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
20. Jenkins
Helped a lot in current project
Its helps automating end to end performance
test. We can schedule it for over night run
There is a Jenkins plug-in that parses the
Jmeter results
We can always archive results
Anyone can trigger the test without
knowledge of Jmeter.
Let go and checkout our Jenkins@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
21. Result
Lets look at Jenkins for results
http://Jenkins/job/PerformanceTestingOnRef/15
0/performance/?
http://Jenkins/job/PerformanceTestingOnRef/13
9/performance/?
You can create your own graphs using tools
like MS Excel i.e. extract whatever data you
want
@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
22. If you would be scaling
o Ram
o Processor
o Node
Find the factor 'X' which will be used to
predict the performance of application if we
scale the hardware
Required incase if you don't want to do
performance tuning .
Hardware Scaling
@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
23. Some Real World Case Studies
V3 : Aakho ka dhoka
Current Project & V2: Registration Looping
Pre-Requisite to automation
User Registration
Deletion of User
To test integration points [apis]
@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
24. JMeter
How to run test from JMeter
o GUI
o Command line arguments
o Distributed load generation
How to create scripts
o Recording using Jmeter proxy / Manually create
o Extract Dynamic data and send in next request
o Parameterized common things i.e server name ,
port , some test data e.g lat, lon
o Configuring test externally from command line
@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)