SlideShare una empresa de Scribd logo
1 de 19
Adding Performance
                 Testing to a Software
                 Development Project
                                             Cris J. Holdorph
                                              Lennard Fuller



© Copyright Unicon, Inc., 2008. Some rights reserved. This work is licensed under a
Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License.
To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/us/
Agenda
1. What is performance testing?
2. Performance Test Environment
3. Setting Goals
4. Performance Test Tools
5. Performance Test Data
6. Analyzing the Results
7. Optimizing the System
                                  2
What is performance
      testing?




                      3
Performance Testing Overview
    Purpose of performance testing is
    NOT to find bugs.
●
    Intended to eliminate performance
    bottlenecks
●
    Establish a baseline for future
    regression testing
●
    Results are compared to a clearly
    defined set of Goals

                                        4
Typical Performance Testing Cycle
              Run Test




 Optimize                  Analyze *


   * Repeat until Goals are reached.
                                       5
Performance Test
  Environment




                   6
Performance Test Environment
●
    Separate Hardware
    –   Production duplicate if possible
●
    External Systems
    –   Will your performance test system hit your
        production LDAP? SSO? SIS?




                                                     7
Goals
●
    Expected Users
●
    Expected Response times
●
    Making sense of the misunderstood
    –   User Concurrency
●
    Time to return HTML for a page is not equal
    to the time to load a page
    –   Testing Full Page loads versus HTML only page
        loads



                                                        8
Tools
●
    Grinder
●
    JMeter
●
    Commercial
    –   Loadrunner
    –   Silk Performer
●
    Recording
●
    Modifying / Tokenizing



                                 9
Prepping the Test
●
    Set up Test Environment
●
    Load Database with Realistic Data
    –   Type of data
    –   Amount of data
●
    Record the Test Script
    –   Record (including sleep time)
    –   Tokenize / Modify / Edit
●
    Set up Test Scenario
    –   Test script mix
    –   Sleep time randomization
                                        10
    –   Ramp up time
Running the Test
●
    Gather information during the test
    –   CPU, IO, memory, GC
●
    Zero out logs before test begins
●
    Reset the database before test begins
    –   Only necessary if performance test changes data in
        certain ways, or if test adds data
●
    Restart the application
●
    Prime the application
    –   Login as a test user(s) and do actions similar to what
        the performance test does
●
    Pressing run (start) on the test tool                    11
Analysis
●
    Gather statistics from different sources
    –   Test tool, sar, custom shell script, gc logs
●
    Examine application logs
    –   Are there any errors or stack traces that show a
        performance related failure?
●
    uPortal only
    –   uPortal built in stats database not recommended
        for performance testing, but can help debug
        production performance problems
●
    Look for Trends
●
    Look for Spikes                                    12
Optimization
Can be difficult, often more of an art than a
science due to complexity.


Cardinal Rule of Performance Optimization:

 “Modify ONE variable at a
   time and remeasure.”


                                             13
Some Areas for Optimization
●
    JVM args
●
    Application Content
     –   Portlets, Layout, etc.
●
    Application Configuration
     –   Logging Level, Logging Location
     –   Database Connection Pooling
     –   Tune Cache Configuration
●
    System Architecture
     –   Use Apache HTTPD in front of Tomcat to serve static
         resources
     –   Use hardware load balancing / SSL
                                                               14
     –   Increase available network bandwidth
Part of Normal Development
●
    How to make Performance Testing part of the
    normal Software Development lifecycle
●
    Benefits
    –   Regression Testing (find problems before they
        occur in production)
    –   Anticipate Hardware needs before code rolls to
        production
●
    Need
    –   Test Environment
    –   Test Scripts
    –   People to run/analyze the test                   15
Limitations: Spikes and Valleys
●
    Performance testing does NOT simulate the
    real world
    –   Both Queueing Theory and Experience show that
        usage is not uniform!
    –   Caution: Outside factors could influence your
        system




                                                        16
Real world looks more like...




                                17
Limitations
●
    Users don't all do the same things in the
    same order
●
    Real usage can differ wildly in terms of
    associations, and actual data
    –   i.e. chinese class with 400 students
●
    AJAX / client side activities are hard to
    performance test, using traditional
    performance testing tools



                                                18
Questions & Answers




          Cris Holdorph
          Lennard Fuller
          Unicon, Inc.

          holdorph@unicon.net
          lfuller@unicon.net
          www.unicon.net

                                19

Más contenido relacionado

Similar a Adding Performance Testing to a Software Development Project

" Performance testing for Automation QA - why and how " by Andrey Kovalenko f...
" Performance testing for Automation QA - why and how " by Andrey Kovalenko f..." Performance testing for Automation QA - why and how " by Andrey Kovalenko f...
" Performance testing for Automation QA - why and how " by Andrey Kovalenko f...Lohika_Odessa_TechTalks
 
Loadtesting wuc2009v2
Loadtesting wuc2009v2Loadtesting wuc2009v2
Loadtesting wuc2009v2ravneetraman
 
Perofrmance testing and apache jmeter
Perofrmance testing and apache jmeterPerofrmance testing and apache jmeter
Perofrmance testing and apache jmeterlethibichhoa
 
Tech talks annual 2015 izzet mustafayev_performance testing - the way to make...
Tech talks annual 2015 izzet mustafayev_performance testing - the way to make...Tech talks annual 2015 izzet mustafayev_performance testing - the way to make...
Tech talks annual 2015 izzet mustafayev_performance testing - the way to make...TechTalks
 
May 2021 Spark Testing ... or how to farm reputation on StackOverflow
May 2021 Spark Testing ... or how to farm reputation on StackOverflowMay 2021 Spark Testing ... or how to farm reputation on StackOverflow
May 2021 Spark Testing ... or how to farm reputation on StackOverflowAdam Doyle
 
Ad109 - XPages Performance and Scalability
Ad109 - XPages Performance and ScalabilityAd109 - XPages Performance and Scalability
Ad109 - XPages Performance and Scalabilityddrschiw
 
Gabriel carabat a healthy approach for test automation
Gabriel carabat   a healthy approach for test automationGabriel carabat   a healthy approach for test automation
Gabriel carabat a healthy approach for test automationRomania Testing
 
DrupalCon 2014: A Perfect Launch, Every Time
DrupalCon 2014: A Perfect Launch, Every TimeDrupalCon 2014: A Perfect Launch, Every Time
DrupalCon 2014: A Perfect Launch, Every TimePantheon
 
Java Performance Testing for Everyone - Shelley Lambert
Java Performance Testing for Everyone - Shelley LambertJava Performance Testing for Everyone - Shelley Lambert
Java Performance Testing for Everyone - Shelley LambertEclipse Day India
 
Berlin QA - Performance Testing
Berlin QA - Performance TestingBerlin QA - Performance Testing
Berlin QA - Performance TestingGlobe Testing
 
Pay pal paypal continuous performance as a self-service with fully-automated...
Pay pal  paypal continuous performance as a self-service with fully-automated...Pay pal  paypal continuous performance as a self-service with fully-automated...
Pay pal paypal continuous performance as a self-service with fully-automated...Dynatrace
 
WE-06-Testing.ppt
WE-06-Testing.pptWE-06-Testing.ppt
WE-06-Testing.pptjaved281701
 
Performance testing
Performance testingPerformance testing
Performance testingNalini Kanth
 
Application Performance Tuning Techniques
Application Performance Tuning TechniquesApplication Performance Tuning Techniques
Application Performance Tuning TechniquesRam Nagesh
 
Anupam_Chaubey_QA_Resume_1Sep
Anupam_Chaubey_QA_Resume_1SepAnupam_Chaubey_QA_Resume_1Sep
Anupam_Chaubey_QA_Resume_1Sepanupam chaubey
 
Learning on Deep Learning
Learning on Deep LearningLearning on Deep Learning
Learning on Deep LearningShelley Lambert
 
Path dependent-development (PyCon India)
Path dependent-development (PyCon India)Path dependent-development (PyCon India)
Path dependent-development (PyCon India)ncoghlan_dev
 
Oracle ADF Architecture TV - Development - Performance & Tuning
Oracle ADF Architecture TV - Development - Performance & TuningOracle ADF Architecture TV - Development - Performance & Tuning
Oracle ADF Architecture TV - Development - Performance & TuningChris Muir
 

Similar a Adding Performance Testing to a Software Development Project (20)

" Performance testing for Automation QA - why and how " by Andrey Kovalenko f...
" Performance testing for Automation QA - why and how " by Andrey Kovalenko f..." Performance testing for Automation QA - why and how " by Andrey Kovalenko f...
" Performance testing for Automation QA - why and how " by Andrey Kovalenko f...
 
Integration testing - A&BP CC
Integration testing - A&BP CCIntegration testing - A&BP CC
Integration testing - A&BP CC
 
Loadtesting wuc2009v2
Loadtesting wuc2009v2Loadtesting wuc2009v2
Loadtesting wuc2009v2
 
Perofrmance testing and apache jmeter
Perofrmance testing and apache jmeterPerofrmance testing and apache jmeter
Perofrmance testing and apache jmeter
 
Tech talks annual 2015 izzet mustafayev_performance testing - the way to make...
Tech talks annual 2015 izzet mustafayev_performance testing - the way to make...Tech talks annual 2015 izzet mustafayev_performance testing - the way to make...
Tech talks annual 2015 izzet mustafayev_performance testing - the way to make...
 
May 2021 Spark Testing ... or how to farm reputation on StackOverflow
May 2021 Spark Testing ... or how to farm reputation on StackOverflowMay 2021 Spark Testing ... or how to farm reputation on StackOverflow
May 2021 Spark Testing ... or how to farm reputation on StackOverflow
 
Ad109 - XPages Performance and Scalability
Ad109 - XPages Performance and ScalabilityAd109 - XPages Performance and Scalability
Ad109 - XPages Performance and Scalability
 
Gabriel carabat a healthy approach for test automation
Gabriel carabat   a healthy approach for test automationGabriel carabat   a healthy approach for test automation
Gabriel carabat a healthy approach for test automation
 
DrupalCon 2014: A Perfect Launch, Every Time
DrupalCon 2014: A Perfect Launch, Every TimeDrupalCon 2014: A Perfect Launch, Every Time
DrupalCon 2014: A Perfect Launch, Every Time
 
Java Performance Testing for Everyone - Shelley Lambert
Java Performance Testing for Everyone - Shelley LambertJava Performance Testing for Everyone - Shelley Lambert
Java Performance Testing for Everyone - Shelley Lambert
 
Berlin QA - Performance Testing
Berlin QA - Performance TestingBerlin QA - Performance Testing
Berlin QA - Performance Testing
 
Pay pal paypal continuous performance as a self-service with fully-automated...
Pay pal  paypal continuous performance as a self-service with fully-automated...Pay pal  paypal continuous performance as a self-service with fully-automated...
Pay pal paypal continuous performance as a self-service with fully-automated...
 
WE-06-Testing.ppt
WE-06-Testing.pptWE-06-Testing.ppt
WE-06-Testing.ppt
 
Performance testing
Performance testingPerformance testing
Performance testing
 
Application Performance Tuning Techniques
Application Performance Tuning TechniquesApplication Performance Tuning Techniques
Application Performance Tuning Techniques
 
Workload Analysis
Workload AnalysisWorkload Analysis
Workload Analysis
 
Anupam_Chaubey_QA_Resume_1Sep
Anupam_Chaubey_QA_Resume_1SepAnupam_Chaubey_QA_Resume_1Sep
Anupam_Chaubey_QA_Resume_1Sep
 
Learning on Deep Learning
Learning on Deep LearningLearning on Deep Learning
Learning on Deep Learning
 
Path dependent-development (PyCon India)
Path dependent-development (PyCon India)Path dependent-development (PyCon India)
Path dependent-development (PyCon India)
 
Oracle ADF Architecture TV - Development - Performance & Tuning
Oracle ADF Architecture TV - Development - Performance & TuningOracle ADF Architecture TV - Development - Performance & Tuning
Oracle ADF Architecture TV - Development - Performance & Tuning
 

Más de Cris Holdorph

Programming for Performance
Programming for PerformanceProgramming for Performance
Programming for PerformanceCris Holdorph
 
Introduction to International MyLabs
Introduction to International MyLabsIntroduction to International MyLabs
Introduction to International MyLabsCris Holdorph
 
Using Sakai Site Archive for Good not Evil
Using Sakai Site Archive for Good not EvilUsing Sakai Site Archive for Good not Evil
Using Sakai Site Archive for Good not EvilCris Holdorph
 
Clustering Made Easier: Using Terracotta with Hibernate and/or EHCache
Clustering Made Easier: Using Terracotta with Hibernate and/or EHCacheClustering Made Easier: Using Terracotta with Hibernate and/or EHCache
Clustering Made Easier: Using Terracotta with Hibernate and/or EHCacheCris Holdorph
 
Developing JSR 286 Portlets
Developing JSR 286 PortletsDeveloping JSR 286 Portlets
Developing JSR 286 PortletsCris Holdorph
 
Sakai and IMS LIS Integration
Sakai and IMS LIS IntegrationSakai and IMS LIS Integration
Sakai and IMS LIS IntegrationCris Holdorph
 
Clustering Sakai with Terracotta
Clustering Sakai with TerracottaClustering Sakai with Terracotta
Clustering Sakai with TerracottaCris Holdorph
 
Introduction to Terracotta
Introduction to TerracottaIntroduction to Terracotta
Introduction to TerracottaCris Holdorph
 

Más de Cris Holdorph (9)

Programming for Performance
Programming for PerformanceProgramming for Performance
Programming for Performance
 
Introduction to International MyLabs
Introduction to International MyLabsIntroduction to International MyLabs
Introduction to International MyLabs
 
Using Sakai Site Archive for Good not Evil
Using Sakai Site Archive for Good not EvilUsing Sakai Site Archive for Good not Evil
Using Sakai Site Archive for Good not Evil
 
No SQL Technologies
No SQL TechnologiesNo SQL Technologies
No SQL Technologies
 
Clustering Made Easier: Using Terracotta with Hibernate and/or EHCache
Clustering Made Easier: Using Terracotta with Hibernate and/or EHCacheClustering Made Easier: Using Terracotta with Hibernate and/or EHCache
Clustering Made Easier: Using Terracotta with Hibernate and/or EHCache
 
Developing JSR 286 Portlets
Developing JSR 286 PortletsDeveloping JSR 286 Portlets
Developing JSR 286 Portlets
 
Sakai and IMS LIS Integration
Sakai and IMS LIS IntegrationSakai and IMS LIS Integration
Sakai and IMS LIS Integration
 
Clustering Sakai with Terracotta
Clustering Sakai with TerracottaClustering Sakai with Terracotta
Clustering Sakai with Terracotta
 
Introduction to Terracotta
Introduction to TerracottaIntroduction to Terracotta
Introduction to Terracotta
 

Último

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 

Último (20)

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 

Adding Performance Testing to a Software Development Project

  • 1. Adding Performance Testing to a Software Development Project Cris J. Holdorph Lennard Fuller © Copyright Unicon, Inc., 2008. Some rights reserved. This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/us/
  • 2. Agenda 1. What is performance testing? 2. Performance Test Environment 3. Setting Goals 4. Performance Test Tools 5. Performance Test Data 6. Analyzing the Results 7. Optimizing the System 2
  • 3. What is performance testing? 3
  • 4. Performance Testing Overview Purpose of performance testing is NOT to find bugs. ● Intended to eliminate performance bottlenecks ● Establish a baseline for future regression testing ● Results are compared to a clearly defined set of Goals 4
  • 5. Typical Performance Testing Cycle Run Test Optimize Analyze * * Repeat until Goals are reached. 5
  • 6. Performance Test Environment 6
  • 7. Performance Test Environment ● Separate Hardware – Production duplicate if possible ● External Systems – Will your performance test system hit your production LDAP? SSO? SIS? 7
  • 8. Goals ● Expected Users ● Expected Response times ● Making sense of the misunderstood – User Concurrency ● Time to return HTML for a page is not equal to the time to load a page – Testing Full Page loads versus HTML only page loads 8
  • 9. Tools ● Grinder ● JMeter ● Commercial – Loadrunner – Silk Performer ● Recording ● Modifying / Tokenizing 9
  • 10. Prepping the Test ● Set up Test Environment ● Load Database with Realistic Data – Type of data – Amount of data ● Record the Test Script – Record (including sleep time) – Tokenize / Modify / Edit ● Set up Test Scenario – Test script mix – Sleep time randomization 10 – Ramp up time
  • 11. Running the Test ● Gather information during the test – CPU, IO, memory, GC ● Zero out logs before test begins ● Reset the database before test begins – Only necessary if performance test changes data in certain ways, or if test adds data ● Restart the application ● Prime the application – Login as a test user(s) and do actions similar to what the performance test does ● Pressing run (start) on the test tool 11
  • 12. Analysis ● Gather statistics from different sources – Test tool, sar, custom shell script, gc logs ● Examine application logs – Are there any errors or stack traces that show a performance related failure? ● uPortal only – uPortal built in stats database not recommended for performance testing, but can help debug production performance problems ● Look for Trends ● Look for Spikes 12
  • 13. Optimization Can be difficult, often more of an art than a science due to complexity. Cardinal Rule of Performance Optimization: “Modify ONE variable at a time and remeasure.” 13
  • 14. Some Areas for Optimization ● JVM args ● Application Content – Portlets, Layout, etc. ● Application Configuration – Logging Level, Logging Location – Database Connection Pooling – Tune Cache Configuration ● System Architecture – Use Apache HTTPD in front of Tomcat to serve static resources – Use hardware load balancing / SSL 14 – Increase available network bandwidth
  • 15. Part of Normal Development ● How to make Performance Testing part of the normal Software Development lifecycle ● Benefits – Regression Testing (find problems before they occur in production) – Anticipate Hardware needs before code rolls to production ● Need – Test Environment – Test Scripts – People to run/analyze the test 15
  • 16. Limitations: Spikes and Valleys ● Performance testing does NOT simulate the real world – Both Queueing Theory and Experience show that usage is not uniform! – Caution: Outside factors could influence your system 16
  • 17. Real world looks more like... 17
  • 18. Limitations ● Users don't all do the same things in the same order ● Real usage can differ wildly in terms of associations, and actual data – i.e. chinese class with 400 students ● AJAX / client side activities are hard to performance test, using traditional performance testing tools 18
  • 19. Questions & Answers Cris Holdorph Lennard Fuller Unicon, Inc. holdorph@unicon.net lfuller@unicon.net www.unicon.net 19