@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
1. Typical Scenario
2. Performance Testing
3. Scope
4. Before getting started
5. Tool Selection
6. Requirement Freezing
7. How to design Test cases
8. Benchmarking [test data / Hardware]
9. Execution [Types of performance test]
10.Life Cycle of performance testing
11.Jenkins/Results
12.Hardware Scaling
13.Real World Case Studies
Agenda
@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
www.abc.com
Typical Scenario
Server
@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
Adam : Performance tester
John : Adam’s 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)
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, don’t
conclude that so easily. Let understand few
more thing before that.
Lets see our next slide
@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
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)
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)
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)
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)
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)
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)
John : “So now i have understanding of
business scenarios also we decided upon tool.
So what’s 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)
• 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)
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)
• 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)
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)
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)
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)
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)
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)
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)
• 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)
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 [api’s]
@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
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)
@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)
@Copyright-Abhijeet
Patil(abhi.gets.mail@gmail.com)

Performance testing ( Approaching , Designing performance tests)

  • 1.
  • 2.
    1. Typical Scenario 2.Performance Testing 3. Scope 4. Before getting started 5. Tool Selection 6. Requirement Freezing 7. How to design Test cases 8. Benchmarking [test data / Hardware] 9. Execution [Types of performance test] 10.Life Cycle of performance testing 11.Jenkins/Results 12.Hardware Scaling 13.Real World Case Studies Agenda @Copyright-Abhijeet Patil(abhi.gets.mail@gmail.com)
  • 3.
  • 4.
    Adam : Performancetester John : Adam’s 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 : “Soif 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, don’t 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 : “Johnthere 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 : Letstake 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 • Traditionallyreferred 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 serveside 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 : “Sonow i have understanding of business scenarios also we decided upon tool. So what’s 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 fewquestion 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 designtest 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 lookfor 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 • Nowdecide 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...) • Distributedload • 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 TestData 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 alot 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 lookat 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 youwould 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 WorldCase Studies • V3 : “Aakho ka dhoka” • Current Project & V2: Registration Looping • Pre-Requisite to automation • User Registration • Deletion of User • To test integration points [api’s] @Copyright-Abhijeet Patil(abhi.gets.mail@gmail.com)
  • 24.
    JMeter • How torun 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)
  • 25.
  • 26.