O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Performance Testing

12.442 visualizações

Publicada em

Performance Testing Basics

Publicada em: Tecnologia

Performance Testing

  1. 1. Performance Testing Load Runner Pune October 2008 Parish Sharma
  2. 2. Contents Day 1 <ul><li>Session 1: Planning an Effective Load Test. </li></ul><ul><li>Session 2: Load Runner Flow and Architecture </li></ul><ul><li>Session 3: Introduction to Scenarios </li></ul><ul><li>Session 4: VuGen and Scripting </li></ul>06/09/09 Author: Parish Sharma
  3. 3. Session 1 Planning an Effective Load Test 06/09/09 Author: Parish Sharma
  4. 4. Types of Performance Test <ul><li>1. Performance Test </li></ul><ul><li>2. Load Test </li></ul><ul><li>3. Stress Test </li></ul><ul><li>4. Capacity Test </li></ul>06/09/09 Author: Parish Sharma
  5. 5. Performance Test <ul><li>Purpose: </li></ul><ul><li>To determine or validate speed, scalability, and/or stability. </li></ul>06/09/09 Author: Parish Sharma
  6. 6. Load test <ul><li>Purpose: </li></ul><ul><li>To verify application behavior under normal and peak load conditions. </li></ul>06/09/09 Author: Parish Sharma
  7. 7. Stress Test <ul><li>Purpose: </li></ul><ul><li>To determine or validate an application’s behavior when it is pushed beyond normal or peak load conditions. </li></ul>06/09/09 Author: Parish Sharma
  8. 8. Capacity Test <ul><li>Purpose: </li></ul><ul><li>To determine how many users and/or transactions a given system will support and still meet performance goals. </li></ul>06/09/09 Author: Parish Sharma
  9. 9. Need for Load Test <ul><li>User support for a New System. </li></ul><ul><li>Upgrade/Scale a System </li></ul><ul><li>To know the Speed and Response of the System </li></ul><ul><li>To know the behavior at normal and peak loads. </li></ul><ul><li>To identify where system breaks. </li></ul>06/09/09 Author: Parish Sharma
  10. 10. Cont.. <ul><li>Most load tests are executed with false intentions, (performance barometer). </li></ul><ul><li>Understanding the impact of response times for predictable behavioral conditions and scenarios. </li></ul><ul><li>Understanding the impact of response times for patterns of adoption and growth. </li></ul>06/09/09 Author: Parish Sharma
  11. 11. Goals & Objectives <ul><li>Performance Testing Objectives </li></ul><ul><li>Performance Objectives </li></ul><ul><li>Performance Targets </li></ul><ul><li>Performance Thresholds </li></ul><ul><li>Performance Budgets </li></ul>06/09/09 Author: Parish Sharma
  12. 12. Measurable Goals <ul><li>1. Transaction Response Time </li></ul><ul><li>2, Resource Utilization </li></ul><ul><li>3. Memory Leaks </li></ul><ul><li>4. Deadlocks </li></ul><ul><li>5. Throughput </li></ul><ul><li>6. Capacity Planning </li></ul><ul><li>7. Product Evaluation </li></ul><ul><li>8. Acceptance </li></ul>06/09/09 Author: Parish Sharma
  13. 13. Information to Start <ul><li>1. Hardware and Software Details </li></ul><ul><li>2. Load to be tested </li></ul><ul><li>3. Expected Response Time </li></ul><ul><li>4. Suitable time to load test. </li></ul><ul><li>5. Critical Business Scenarios. </li></ul><ul><li>6. Priority and Flow of scenarios. </li></ul>06/09/09 Author: Parish Sharma
  14. 14. END OF SESSION -1 QUESTIONS?? 06/09/09 Author: Parish Sharma
  15. 15. Session 2 Load Runner Flow and Architecture 06/09/09 Author: Parish Sharma
  16. 16. Load Runner Components <ul><li>1. Virtual User Generator </li></ul><ul><li>2. Controller </li></ul><ul><li>3. Load Generator Agent </li></ul><ul><li>4. Analysis </li></ul>06/09/09 Author: Parish Sharma
  17. 17. Plan Test Create Scripts Scenario Creation Scenario Execution Result Analysis Load Testing Flow Performance Tuning
  18. 18. Test Planning <ul><li>1. Test Planning - Before we run load testing </li></ul><ul><li>- Setup goals </li></ul><ul><ul><ul><li>Measure application response time </li></ul></ul></ul><ul><ul><ul><li>Configuration sizing </li></ul></ul></ul><ul><ul><ul><li>Capacity planning </li></ul></ul></ul><ul><ul><ul><li>Regression </li></ul></ul></ul><ul><ul><ul><li>Reliability </li></ul></ul></ul><ul><li>- Type of testing </li></ul><ul><ul><ul><li>Load Testing (System performance testing with SLA target load) </li></ul></ul></ul><ul><ul><ul><li>Stress Testing (Capacity testing to find out breaking point) </li></ul></ul></ul><ul><ul><ul><li>Duration Testing (Reliability testing to test the system under load) </li></ul></ul></ul>
  19. 19. Create Scripts <ul><li>2. Create Scripts </li></ul><ul><li>- Automate business processes in LoadRunner VUGen (Virtual User Generator): </li></ul><ul><ul><li>Scripts are C, C++-like code </li></ul></ul><ul><ul><li>Scripts are different with different protocol/technology </li></ul></ul><ul><ul><li> LoadRunner has about 50 protocols, including WAP </li></ul></ul><ul><li>Record user actions </li></ul><ul><ul><li>Need assistance of SME/Functional Testing group </li></ul></ul><ul><li>Add programming and test data in the scripts </li></ul><ul><ul><li>E.g. add correlation to handle dynamic data, e.g. session id </li></ul></ul><ul><ul><li>Test data may need lot of work from project team </li></ul></ul>
  20. 20. Scenario Creation <ul><li>3. Create Test Scenario </li></ul><ul><li>- Build test scenario according to usage information in Business Profile </li></ul><ul><li>Load Calculation </li></ul><ul><li>Can use rendezvous point, etc. </li></ul><ul><li>- Run-Time setting </li></ul><ul><li>Think time </li></ul><ul><li>Pacing </li></ul><ul><li>Browser Emulation: simulate browser cache, new user each iteration </li></ul><ul><li>Browser version, bandwidth, etc. </li></ul>
  21. 21. Test Execution <ul><li>4. Execute Load Testing </li></ul><ul><li>Execute test scenarios with automated test scripts in LoadRunner Controller </li></ul><ul><li>Isolate top time transactions with low load </li></ul><ul><li>Overdrive test (120% of full load) to isolate SW & HW limitations </li></ul><ul><li>- Work with Internal Support Team to monitor the whole system, e.g., web server, DB server, middleware, etc. </li></ul>
  22. 22. Result Analysis <ul><li>5. Analyze Test Result - Analysis </li></ul><ul><li>- Collect statistics and graphs from LoadRunner </li></ul><ul><li>- Report results </li></ul><ul><ul><li>- Most commonly requested results: </li></ul></ul><ul><ul><li>Transaction Response time </li></ul></ul><ul><ul><li>Throughput </li></ul></ul><ul><ul><li>Hits per sec </li></ul></ul><ul><ul><li>HTTP response </li></ul></ul><ul><ul><li>Network Delay </li></ul></ul><ul><ul><li>*Server Performance </li></ul></ul><ul><ul><li>- Merge graphs to make it more meaningful </li></ul></ul><ul><ul><li>Transaction response time under load </li></ul></ul><ul><ul><li>Response time/Vuser vs CPU utilization </li></ul></ul><ul><ul><li>Cross scenario graphs </li></ul></ul>
  23. 23. Result Reporting <ul><li>6. Test Report </li></ul><ul><li>- Don’t send LoadRunner result and graphs directly </li></ul><ul><li>- Send summary to the whole team </li></ul><ul><li>- Report key performance data and back end performance data </li></ul><ul><li>- Add notes for each test run </li></ul><ul><li>- Keep test history: for team to compare test runs </li></ul>
  24. 24. Architecture Overview 06/09/09 Author: Parish Sharma
  25. 25. How it Works 06/09/09 Author: Parish Sharma
  26. 26. END OF SESSION -2 QUESTIONS?? 06/09/09 Author: Parish Sharma
  27. 27. Session 3 Introduction to Scenario 06/09/09 Author: Parish Sharma
  28. 28. Elements making a Scenario <ul><li>1. Business Requirements </li></ul><ul><li>2. User Load </li></ul><ul><li>3. Ramp Up / Ramp Down </li></ul><ul><li>4. Steady Run Time </li></ul><ul><li>5. Actions of the Users </li></ul>06/09/09 Author: Parish Sharma
  29. 29. Scenario <ul><li>Using LoadRunner, we divide the application performance testing requirements into scenarios. </li></ul><ul><li>A scenario defines the events that occur during each testing sessions. </li></ul><ul><li>For example, a scenario defines and controls the number of users to emulate, the actions that they perform and the machines on which they run the emulations. </li></ul>06/09/09 Author: Parish Sharma
  30. 30. Types of Scenario <ul><li>1. Manual </li></ul><ul><li>2. Goal Based </li></ul>06/09/09 Author: Parish Sharma
  31. 31. Types of Execution <ul><ul><li>20% of Full Load - flush out transaction problems, effectively debug transaction </li></ul></ul><ul><ul><li>Full Load - flush out system problems, effectively debug system </li></ul></ul><ul><ul><li>120% of Full Load (Overdrive) - provide a margin of error as well as future scalability </li></ul></ul>06/09/09 Author: Parish Sharma
  32. 32. END OF SESSION -3 QUESTIONS?? 06/09/09 Author: Parish Sharma
  33. 33. Session 3 VuGen and Scripting 06/09/09 Author: Parish Sharma
  34. 34. Virtual Users <ul><li>Virtual users or Vusers emulate the steps of real users. The steps that Vusers perform are recorded in a Vuser Script. </li></ul>06/09/09 Author: Parish Sharma
  35. 35. Virtual User Generator <ul><li>VuGen records Vuser scripts that emulate the steps of real users using the application. </li></ul><ul><li>VuGen not only records VuGen scripts but also runs them. Running scripts from VuGen is useful for debugging. </li></ul><ul><li>VuGen records sessions on Windows platforms only. However a recorded Vuser script can run on both Windows and Unix Platforms. </li></ul>06/09/09 Author: Parish Sharma
  36. 36. Developing Vuser Script <ul><li>Record a basic script. </li></ul><ul><li>Enhance/Edit the script. </li></ul><ul><li>Configure the run time settings. </li></ul><ul><li>Run the script in Stand Alone mode. </li></ul><ul><li>Integrate the Vuser script into the test. </li></ul>06/09/09 Author: Parish Sharma
  37. 37. Vuser Scripts <ul><li>Each Vuser script has 3 sections: </li></ul><ul><ul><li>Vuser_init{() </li></ul></ul><ul><ul><li>Actions() {One or more actions can be there} </li></ul></ul><ul><ul><li>Vuser_End() </li></ul></ul>06/09/09 Author: Parish Sharma
  38. 38. Enhancing the scripts <ul><li>After recording the basic script, it can be enhanced with the following: </li></ul><ul><ul><li>General Vuser Functions. </li></ul></ul><ul><ul><li>Protocol specific Vuser Functions </li></ul></ul><ul><ul><li>Standard ANSI C Functions </li></ul></ul><ul><ul><li>Inserting Transactions into the script. </li></ul></ul><ul><ul><li>Sending Messages to the output </li></ul></ul><ul><ul><li>Handling errors. </li></ul></ul><ul><ul><li>Parameterization </li></ul></ul><ul><ul><li>Corelation </li></ul></ul>06/09/09 Author: Parish Sharma
  39. 39. Run Time Settings <ul><li>Think Time </li></ul><ul><li>Run Logic </li></ul><ul><li>Pacing </li></ul><ul><li>Log </li></ul><ul><ul><li>Standard </li></ul></ul><ul><ul><li>Extended </li></ul></ul><ul><ul><li>Miscellaneous. </li></ul></ul>06/09/09 Author: Parish Sharma
  40. 40. END OF SESSION -4 QUESTIONS?? 06/09/09 Author: Parish Sharma
  41. 41. QUIZ TIME!!!!!!!! 06/09/09 Author: Parish Sharma
  42. 42. Questions? <ul><li>[email_address] </li></ul><ul><li>[email_address] </li></ul><ul><li>Tel: (020)2620-7710 (desk) </li></ul><ul><ul><ul><li>09922429552 (cell) </li></ul></ul></ul>06/09/09 Author: Parish Sharma