SlideShare a Scribd company logo
1 of 34
Download to read offline
Loadtesting Web(GUI) sites:
    why, what and how


    Mark Rotteveel (Pluton IT)
Who am I?
• Mark Rotteveel          • In IT since 1999
• Born in 1979            • Working as a tester
• Hobbies: reading,         since 2006
  working with Firebird   • Joined Pluton in
  and more                  2008
                          • Loadtesting CRM
                            systems at T-
                            Systems / T-Mobile
                            NL
Overview
• Introduction testing
• Why : reasons for testing
     – Verifying performance requirements
     – Resource planning
• What : targets for testing
     – Designing tests
     – Metrics to use
• How : methods of testing
     –   Tools
     –   Recording / writing tests
     –   Execution
     –   Results
Introduction testing


• Finding errors
    – Verifying software matches requirements
    – Validating software meets user needs
    – Other errors
• Mitigating (business) risks
• Minimizing cost
Loadtesting


•   Verifying performance requirements
•   Checking behavior under load
•   Resource planning
•   Representative load (eg normal, peak, max
    transaction rate with 'normal' resource use)
Stress testing


• Finding limits of software (or hardware)
• Behavior beyond expected load or with limited
  resources
    – Bugs under high load / constrained resources
    – Error handling / graceful degradation or failure
• Exaggerated load (eg 2x peak, until
  application breaks)
Why : Reasons for testing
Verifying requirements (1)


• Requirements state objectives for the
  application (and the test)
    – Response time
    – Load to handle
    – Etc
• Test to verify application meets those
  requirements!
Verifying requirements (2)

Target metrics (example)   Source

• Response time            • List of non-
• Transactions per           functional
  second                     requirements
• Concurrent users         • Usage model
                                – Operational profile
                                – Load profile
Requirements : Example


• Scenario : login
    – Process 5 logins per minute
    – 500 ms response time target
Resource planning (1)


• Resource planning: knowing when to upgrade
  your hardware or add new servers
• Test to check or enhance your planning for
  upgrades,
• or to make a contingency plan for unexpected
  increase of traffic
Resource planning (2)

What                     Why

• Current usage:         • Plan ahead
  required resources     • Contingency plan for
• Expected growth          unexpected growth
• Determine triggers /   • Resource impact of
  warnings on              new version
  resource usage
What : Targets of testing
Designing tests (1)


• Select requirements     • Determine user
  to test                   count or load target
• Select (or write) use   • Amount of
  cases                     'thinktime'
Designing tests (2)


• Order tests by         • Aggregate test
  business risk or         cases
  importance             • Realistic load for
• Most important tests     combined scenario
  first!
• Test individual and
  combined
Test : Example


• Login                   • Access main page
• Target : 5 logins per   • Enter login
  minute                    information
• Determine response      • Click login
  time (should be <
  500 msecs)
Metrics (1)


    Metrics are measurements or performance
indicators used to monitor the test, and determine
           success or failure of the test.
Metrics (2)


• Select metrics for the requirements
• Too much is better than too little
• But, more measurements influence test (eg
  additional load)
Metrics (3): examples


• Resource planning: memory, CPU, bandwidth
• User experience: response time, latency,
  throughput
• Correctness: % failed tests
How : Methods for testing
Testing needs


•   Tools : open source or proprietary
•   Recording / writing actual test
•   Preparation
•   Execution
•   Reporting on results
Tools


• Open source tools: Jmeter, The Grinder (and
  more)
• Proprietary tools: HP LoadRunner,
  SilkPerformer (and more)
• Select the tool that matches your budget and
  needs
Open source vs proprietary

Open source          Proprietary

• Cheap             • Support,
• Extendable (not     documentation
  always easy)      • More functionality
Recording / writing tests
• Translate test design to executable test
• Record and playback vs 'handwritten'
• Parametrize user data
    – Scenario 'consumables' (eg usernames, order
      information)
    – Dynamic session data (eg cookies)
• Add assertions for expected results
• Verify playback (both single and multiple user)
Using Jmeter


• Simple example: recording login into WebGUI
Preparation for execution


• Configure scenario (number of users,
  'thinktime', ramp up, duration)
• Combine scenarios for 'realistic' load
• Setup monitoring of target application(s) /
  server(s)
• Collect data for scenario 'consumables'
Execution


•   Start the test
•   Keep an eye on metrics
•   Manually check the application during test
•   Verify that loadtest server(s) is not overloaded
Results (1)


• Correlate metrics :
  dependencies and
  bottlenecks
• Draw conclusions
Results(2)



• Verify requirements
  ('did we reach our
  targets')
Results (3)


• Communicate results and findings to
  development, management
• Record lessons learned for future reference
• Preserve testware for future use
Pitfalls (1)
• Using one loadserver: bottleneck is the
  testserver
• Flooding the target machine
• Not parametrizing data (caching effects, errors
  due to duplicate or incorrect data)
Pitfalls (2)


• Loadtest software is not a browser (usually no
  or limited javascript support!)
• Not checking for expected data (or absence of
  errors) in response of server
• Test environment not enough production-like
  (impossible to predict behavior in production)
WebGUI specifics
• Manage session cookies (eg use HTTP
  Cookie Manager in JMeter)
• Parameter separator of WebGUI (';') not
  supported by all software; only standard '&'
  (minor problems recording, WebGUI does
  support '&' in playback)
• JMeter bug: recording proxy sometimes
  incorrectly encodes GET requests (stop and
  start proxy before recording next step)
Questions?

More Related Content

What's hot

Dependable Systems -Dependability Attributes (5/16)
Dependable Systems -Dependability Attributes (5/16)Dependable Systems -Dependability Attributes (5/16)
Dependable Systems -Dependability Attributes (5/16)Peter Tröger
 
How to Analyze Reports in Jmeter
How to Analyze Reports in JmeterHow to Analyze Reports in Jmeter
How to Analyze Reports in JmeterViviana Lesmes
 
Dependable Systems - Hardware Dependability with Redundancy (14/16)
Dependable Systems - Hardware Dependability with Redundancy (14/16)Dependable Systems - Hardware Dependability with Redundancy (14/16)
Dependable Systems - Hardware Dependability with Redundancy (14/16)Peter Tröger
 
Performance testing using Jmeter for apps which needs authentication
Performance testing using Jmeter for apps which needs authenticationPerformance testing using Jmeter for apps which needs authentication
Performance testing using Jmeter for apps which needs authenticationJay Jha
 
How Texas Instruments Uses InfluxDB to Uphold Product Standards and to Improv...
How Texas Instruments Uses InfluxDB to Uphold Product Standards and to Improv...How Texas Instruments Uses InfluxDB to Uphold Product Standards and to Improv...
How Texas Instruments Uses InfluxDB to Uphold Product Standards and to Improv...DevOps.com
 
Dependable Systems -Dependability Threats (2/16)
Dependable Systems -Dependability Threats (2/16)Dependable Systems -Dependability Threats (2/16)
Dependable Systems -Dependability Threats (2/16)Peter Tröger
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering Madhar Khan Pathan
 
Dependable Systems -Dependability Means (3/16)
Dependable Systems -Dependability Means (3/16)Dependable Systems -Dependability Means (3/16)
Dependable Systems -Dependability Means (3/16)Peter Tröger
 
CSI-503 - 3. Process Scheduling
CSI-503 - 3. Process SchedulingCSI-503 - 3. Process Scheduling
CSI-503 - 3. Process Schedulingghayour abbas
 
Dependable Systems - Hardware Dependability with Diagnosis (13/16)
Dependable Systems - Hardware Dependability with Diagnosis (13/16)Dependable Systems - Hardware Dependability with Diagnosis (13/16)
Dependable Systems - Hardware Dependability with Diagnosis (13/16)Peter Tröger
 
Icsm2009 jiang
Icsm2009 jiangIcsm2009 jiang
Icsm2009 jiangSAIL_QU
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering Madhar Khan Pathan
 
Eric Proegler Oredev Performance Testing in New Contexts
Eric Proegler Oredev Performance Testing in New ContextsEric Proegler Oredev Performance Testing in New Contexts
Eric Proegler Oredev Performance Testing in New ContextsEric Proegler
 
Dependable Systems -Reliability Prediction (9/16)
Dependable Systems -Reliability Prediction (9/16)Dependable Systems -Reliability Prediction (9/16)
Dependable Systems -Reliability Prediction (9/16)Peter Tröger
 
Dependable Systems - Structure-Based Dependabiilty Modeling (6/16)
Dependable Systems - Structure-Based Dependabiilty Modeling (6/16)Dependable Systems - Structure-Based Dependabiilty Modeling (6/16)
Dependable Systems - Structure-Based Dependabiilty Modeling (6/16)Peter Tröger
 
CSI-503 - 2. Processor Management
CSI-503 - 2. Processor ManagementCSI-503 - 2. Processor Management
CSI-503 - 2. Processor Managementghayour abbas
 

What's hot (20)

CPU Scheduling
CPU SchedulingCPU Scheduling
CPU Scheduling
 
Process Synchronization
Process SynchronizationProcess Synchronization
Process Synchronization
 
Dependable Systems -Dependability Attributes (5/16)
Dependable Systems -Dependability Attributes (5/16)Dependable Systems -Dependability Attributes (5/16)
Dependable Systems -Dependability Attributes (5/16)
 
How to Analyze Reports in Jmeter
How to Analyze Reports in JmeterHow to Analyze Reports in Jmeter
How to Analyze Reports in Jmeter
 
Dependable Systems - Hardware Dependability with Redundancy (14/16)
Dependable Systems - Hardware Dependability with Redundancy (14/16)Dependable Systems - Hardware Dependability with Redundancy (14/16)
Dependable Systems - Hardware Dependability with Redundancy (14/16)
 
Performance testing using Jmeter for apps which needs authentication
Performance testing using Jmeter for apps which needs authenticationPerformance testing using Jmeter for apps which needs authentication
Performance testing using Jmeter for apps which needs authentication
 
How Texas Instruments Uses InfluxDB to Uphold Product Standards and to Improv...
How Texas Instruments Uses InfluxDB to Uphold Product Standards and to Improv...How Texas Instruments Uses InfluxDB to Uphold Product Standards and to Improv...
How Texas Instruments Uses InfluxDB to Uphold Product Standards and to Improv...
 
Operating systems
Operating systemsOperating systems
Operating systems
 
Dependable Systems -Dependability Threats (2/16)
Dependable Systems -Dependability Threats (2/16)Dependable Systems -Dependability Threats (2/16)
Dependable Systems -Dependability Threats (2/16)
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
 
Dependable Systems -Dependability Means (3/16)
Dependable Systems -Dependability Means (3/16)Dependable Systems -Dependability Means (3/16)
Dependable Systems -Dependability Means (3/16)
 
Process Management
Process ManagementProcess Management
Process Management
 
CSI-503 - 3. Process Scheduling
CSI-503 - 3. Process SchedulingCSI-503 - 3. Process Scheduling
CSI-503 - 3. Process Scheduling
 
Dependable Systems - Hardware Dependability with Diagnosis (13/16)
Dependable Systems - Hardware Dependability with Diagnosis (13/16)Dependable Systems - Hardware Dependability with Diagnosis (13/16)
Dependable Systems - Hardware Dependability with Diagnosis (13/16)
 
Icsm2009 jiang
Icsm2009 jiangIcsm2009 jiang
Icsm2009 jiang
 
Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
 
Eric Proegler Oredev Performance Testing in New Contexts
Eric Proegler Oredev Performance Testing in New ContextsEric Proegler Oredev Performance Testing in New Contexts
Eric Proegler Oredev Performance Testing in New Contexts
 
Dependable Systems -Reliability Prediction (9/16)
Dependable Systems -Reliability Prediction (9/16)Dependable Systems -Reliability Prediction (9/16)
Dependable Systems -Reliability Prediction (9/16)
 
Dependable Systems - Structure-Based Dependabiilty Modeling (6/16)
Dependable Systems - Structure-Based Dependabiilty Modeling (6/16)Dependable Systems - Structure-Based Dependabiilty Modeling (6/16)
Dependable Systems - Structure-Based Dependabiilty Modeling (6/16)
 
CSI-503 - 2. Processor Management
CSI-503 - 2. Processor ManagementCSI-503 - 2. Processor Management
CSI-503 - 2. Processor Management
 

Viewers also liked

Chia se kinh nghiem hotdeal
Chia se kinh nghiem hotdealChia se kinh nghiem hotdeal
Chia se kinh nghiem hotdealaction.vn
 
Herramientas 2.0 y educación
Herramientas 2.0 y educaciónHerramientas 2.0 y educación
Herramientas 2.0 y educaciónMariaDelgado1987
 
Açık Erişim Üniversitelerde Neleri Değiştirecek?
Açık Erişim Üniversitelerde Neleri Değiştirecek?Açık Erişim Üniversitelerde Neleri Değiştirecek?
Açık Erişim Üniversitelerde Neleri Değiştirecek?İlkay Holt
 
Açık Erişim: Araştırma için Katma Değer Yaratmak
Açık Erişim: Araştırma için Katma Değer YaratmakAçık Erişim: Araştırma için Katma Değer Yaratmak
Açık Erişim: Araştırma için Katma Değer Yaratmakİlkay Holt
 
Managing sources
Managing sourcesManaging sources
Managing sourcesTammi Owens
 

Viewers also liked (6)

Can i file bankruptcy?
Can i file bankruptcy?Can i file bankruptcy?
Can i file bankruptcy?
 
Chia se kinh nghiem hotdeal
Chia se kinh nghiem hotdealChia se kinh nghiem hotdeal
Chia se kinh nghiem hotdeal
 
Herramientas 2.0 y educación
Herramientas 2.0 y educaciónHerramientas 2.0 y educación
Herramientas 2.0 y educación
 
Açık Erişim Üniversitelerde Neleri Değiştirecek?
Açık Erişim Üniversitelerde Neleri Değiştirecek?Açık Erişim Üniversitelerde Neleri Değiştirecek?
Açık Erişim Üniversitelerde Neleri Değiştirecek?
 
Açık Erişim: Araştırma için Katma Değer Yaratmak
Açık Erişim: Araştırma için Katma Değer YaratmakAçık Erişim: Araştırma için Katma Değer Yaratmak
Açık Erişim: Araştırma için Katma Değer Yaratmak
 
Managing sources
Managing sourcesManaging sources
Managing sources
 

Similar to Loadtesting Web(GUI) Sites: Verifying Performance and Finding Limits

Load testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew SiemerLoad testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew SiemerAndrew Siemer
 
Introduction to performance testing
Introduction to performance testingIntroduction to performance testing
Introduction to performance testingRichard Bishop
 
July webinar l How to Handle the Holiday Retail Rush with Agile Performance T...
July webinar l How to Handle the Holiday Retail Rush with Agile Performance T...July webinar l How to Handle the Holiday Retail Rush with Agile Performance T...
July webinar l How to Handle the Holiday Retail Rush with Agile Performance T...Apica
 
Software Testing- Principles of testing- Mazenet Solution
Software Testing- Principles of testing- Mazenet SolutionSoftware Testing- Principles of testing- Mazenet Solution
Software Testing- Principles of testing- Mazenet SolutionMazenetsolution
 
20121213 qa introduction smileryang
20121213 qa introduction smileryang20121213 qa introduction smileryang
20121213 qa introduction smileryangnetdbncku
 
Testing- Fundamentals of Testing-Mazenet solution
Testing- Fundamentals of Testing-Mazenet solutionTesting- Fundamentals of Testing-Mazenet solution
Testing- Fundamentals of Testing-Mazenet solutionMazenetsolution
 
Holiday Readiness: Best Practices for Successful Holiday Readiness Testing
Holiday Readiness: Best Practices for Successful Holiday Readiness TestingHoliday Readiness: Best Practices for Successful Holiday Readiness Testing
Holiday Readiness: Best Practices for Successful Holiday Readiness TestingApica
 
Fundamentals of Software Quality Assurance & Testing
Fundamentals of Software Quality Assurance & TestingFundamentals of Software Quality Assurance & Testing
Fundamentals of Software Quality Assurance & Testingrongbaz
 
IGCSE Chapter 7 System life cycle Development, Section Development and Testing
IGCSE Chapter 7 System life cycle Development, Section Development and TestingIGCSE Chapter 7 System life cycle Development, Section Development and Testing
IGCSE Chapter 7 System life cycle Development, Section Development and Testingmlmihjaz
 
Testing as a Career
Testing as a CareerTesting as a Career
Testing as a CareerPrabal Dutta
 
St all about test case-p3
St all about test case-p3St all about test case-p3
St all about test case-p3Prachi Sasankar
 
ST-All about Test Case-p3
ST-All about Test Case-p3ST-All about Test Case-p3
ST-All about Test Case-p3Prachi Sasankar
 
Performance testing jmeter
Performance testing jmeterPerformance testing jmeter
Performance testing jmeterBhojan Rajan
 
_VoicePPT_QA_Testing_Training_4_Days_Schedule.ppt
_VoicePPT_QA_Testing_Training_4_Days_Schedule.ppt_VoicePPT_QA_Testing_Training_4_Days_Schedule.ppt
_VoicePPT_QA_Testing_Training_4_Days_Schedule.pptAnilKumarARS
 
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!Richard Robinson
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation TestingFayis-QA
 
Practical Software Testing Tools
Practical Software Testing ToolsPractical Software Testing Tools
Practical Software Testing ToolsDr Ganesh Iyer
 

Similar to Loadtesting Web(GUI) Sites: Verifying Performance and Finding Limits (20)

Load testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew SiemerLoad testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew Siemer
 
Introduction to performance testing
Introduction to performance testingIntroduction to performance testing
Introduction to performance testing
 
July webinar l How to Handle the Holiday Retail Rush with Agile Performance T...
July webinar l How to Handle the Holiday Retail Rush with Agile Performance T...July webinar l How to Handle the Holiday Retail Rush with Agile Performance T...
July webinar l How to Handle the Holiday Retail Rush with Agile Performance T...
 
Software Testing- Principles of testing- Mazenet Solution
Software Testing- Principles of testing- Mazenet SolutionSoftware Testing- Principles of testing- Mazenet Solution
Software Testing- Principles of testing- Mazenet Solution
 
20121213 qa introduction smileryang
20121213 qa introduction smileryang20121213 qa introduction smileryang
20121213 qa introduction smileryang
 
JMeter
JMeterJMeter
JMeter
 
Testing- Fundamentals of Testing-Mazenet solution
Testing- Fundamentals of Testing-Mazenet solutionTesting- Fundamentals of Testing-Mazenet solution
Testing- Fundamentals of Testing-Mazenet solution
 
Holiday Readiness: Best Practices for Successful Holiday Readiness Testing
Holiday Readiness: Best Practices for Successful Holiday Readiness TestingHoliday Readiness: Best Practices for Successful Holiday Readiness Testing
Holiday Readiness: Best Practices for Successful Holiday Readiness Testing
 
ISTQB foundation level - day 2
ISTQB foundation level - day 2ISTQB foundation level - day 2
ISTQB foundation level - day 2
 
Fundamentals of Software Quality Assurance & Testing
Fundamentals of Software Quality Assurance & TestingFundamentals of Software Quality Assurance & Testing
Fundamentals of Software Quality Assurance & Testing
 
Performance testing
Performance testingPerformance testing
Performance testing
 
IGCSE Chapter 7 System life cycle Development, Section Development and Testing
IGCSE Chapter 7 System life cycle Development, Section Development and TestingIGCSE Chapter 7 System life cycle Development, Section Development and Testing
IGCSE Chapter 7 System life cycle Development, Section Development and Testing
 
Testing as a Career
Testing as a CareerTesting as a Career
Testing as a Career
 
St all about test case-p3
St all about test case-p3St all about test case-p3
St all about test case-p3
 
ST-All about Test Case-p3
ST-All about Test Case-p3ST-All about Test Case-p3
ST-All about Test Case-p3
 
Performance testing jmeter
Performance testing jmeterPerformance testing jmeter
Performance testing jmeter
 
_VoicePPT_QA_Testing_Training_4_Days_Schedule.ppt
_VoicePPT_QA_Testing_Training_4_Days_Schedule.ppt_VoicePPT_QA_Testing_Training_4_Days_Schedule.ppt
_VoicePPT_QA_Testing_Training_4_Days_Schedule.ppt
 
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
SCRIMPS-STD: Test Automation Design Principles - and asking the right questions!
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
 
Practical Software Testing Tools
Practical Software Testing ToolsPractical Software Testing Tools
Practical Software Testing Tools
 

Loadtesting Web(GUI) Sites: Verifying Performance and Finding Limits

  • 1. Loadtesting Web(GUI) sites: why, what and how Mark Rotteveel (Pluton IT)
  • 2. Who am I? • Mark Rotteveel • In IT since 1999 • Born in 1979 • Working as a tester • Hobbies: reading, since 2006 working with Firebird • Joined Pluton in and more 2008 • Loadtesting CRM systems at T- Systems / T-Mobile NL
  • 3. Overview • Introduction testing • Why : reasons for testing – Verifying performance requirements – Resource planning • What : targets for testing – Designing tests – Metrics to use • How : methods of testing – Tools – Recording / writing tests – Execution – Results
  • 4. Introduction testing • Finding errors – Verifying software matches requirements – Validating software meets user needs – Other errors • Mitigating (business) risks • Minimizing cost
  • 5. Loadtesting • Verifying performance requirements • Checking behavior under load • Resource planning • Representative load (eg normal, peak, max transaction rate with 'normal' resource use)
  • 6. Stress testing • Finding limits of software (or hardware) • Behavior beyond expected load or with limited resources – Bugs under high load / constrained resources – Error handling / graceful degradation or failure • Exaggerated load (eg 2x peak, until application breaks)
  • 7. Why : Reasons for testing
  • 8. Verifying requirements (1) • Requirements state objectives for the application (and the test) – Response time – Load to handle – Etc • Test to verify application meets those requirements!
  • 9. Verifying requirements (2) Target metrics (example) Source • Response time • List of non- • Transactions per functional second requirements • Concurrent users • Usage model – Operational profile – Load profile
  • 10. Requirements : Example • Scenario : login – Process 5 logins per minute – 500 ms response time target
  • 11. Resource planning (1) • Resource planning: knowing when to upgrade your hardware or add new servers • Test to check or enhance your planning for upgrades, • or to make a contingency plan for unexpected increase of traffic
  • 12. Resource planning (2) What Why • Current usage: • Plan ahead required resources • Contingency plan for • Expected growth unexpected growth • Determine triggers / • Resource impact of warnings on new version resource usage
  • 13. What : Targets of testing
  • 14. Designing tests (1) • Select requirements • Determine user to test count or load target • Select (or write) use • Amount of cases 'thinktime'
  • 15. Designing tests (2) • Order tests by • Aggregate test business risk or cases importance • Realistic load for • Most important tests combined scenario first! • Test individual and combined
  • 16. Test : Example • Login • Access main page • Target : 5 logins per • Enter login minute information • Determine response • Click login time (should be < 500 msecs)
  • 17. Metrics (1) Metrics are measurements or performance indicators used to monitor the test, and determine success or failure of the test.
  • 18. Metrics (2) • Select metrics for the requirements • Too much is better than too little • But, more measurements influence test (eg additional load)
  • 19. Metrics (3): examples • Resource planning: memory, CPU, bandwidth • User experience: response time, latency, throughput • Correctness: % failed tests
  • 20. How : Methods for testing
  • 21. Testing needs • Tools : open source or proprietary • Recording / writing actual test • Preparation • Execution • Reporting on results
  • 22. Tools • Open source tools: Jmeter, The Grinder (and more) • Proprietary tools: HP LoadRunner, SilkPerformer (and more) • Select the tool that matches your budget and needs
  • 23. Open source vs proprietary Open source Proprietary • Cheap • Support, • Extendable (not documentation always easy) • More functionality
  • 24. Recording / writing tests • Translate test design to executable test • Record and playback vs 'handwritten' • Parametrize user data – Scenario 'consumables' (eg usernames, order information) – Dynamic session data (eg cookies) • Add assertions for expected results • Verify playback (both single and multiple user)
  • 25. Using Jmeter • Simple example: recording login into WebGUI
  • 26. Preparation for execution • Configure scenario (number of users, 'thinktime', ramp up, duration) • Combine scenarios for 'realistic' load • Setup monitoring of target application(s) / server(s) • Collect data for scenario 'consumables'
  • 27. Execution • Start the test • Keep an eye on metrics • Manually check the application during test • Verify that loadtest server(s) is not overloaded
  • 28. Results (1) • Correlate metrics : dependencies and bottlenecks • Draw conclusions
  • 29. Results(2) • Verify requirements ('did we reach our targets')
  • 30. Results (3) • Communicate results and findings to development, management • Record lessons learned for future reference • Preserve testware for future use
  • 31. Pitfalls (1) • Using one loadserver: bottleneck is the testserver • Flooding the target machine • Not parametrizing data (caching effects, errors due to duplicate or incorrect data)
  • 32. Pitfalls (2) • Loadtest software is not a browser (usually no or limited javascript support!) • Not checking for expected data (or absence of errors) in response of server • Test environment not enough production-like (impossible to predict behavior in production)
  • 33. WebGUI specifics • Manage session cookies (eg use HTTP Cookie Manager in JMeter) • Parameter separator of WebGUI (';') not supported by all software; only standard '&' (minor problems recording, WebGUI does support '&' in playback) • JMeter bug: recording proxy sometimes incorrectly encodes GET requests (stop and start proxy before recording next step)