Performance testing (Approaching , Baby steps)


Published on

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 .

Published in: Engineering, Technology
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Performance testing (Approaching , Baby steps)

  1. 1. @Copyright-Abhijeet Patil(
  2. 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(
  3. 3. Typical Scenario Server @Copyright-Abhijeet Patil(
  4. 4. 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(
  5. 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, don’t conclude that so easily. Let understand few more thing before that. Lets see our next slide @Copyright-Abhijeet Patil(
  6. 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(
  7. 7. Adam : Lets take an example of . And understand few basic things Server <html> <head>Google</head> <body> Result found….. </body> </html> @Copyright-Abhijeet Patil(
  8. 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(
  9. 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(
  10. 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(
  11. 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(
  12. 12. 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(
  13. 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(
  14. 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(
  15. 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(
  16. 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(
  17. 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(
  18. 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(
  19. 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(
  20. 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(
  21. 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(
  22. 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(
  23. 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 [api’s] @Copyright-Abhijeet Patil(
  24. 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(
  25. 25. @Copyright-Abhijeet Patil(
  26. 26. @Copyright-Abhijeet Patil(