SlideShare a Scribd company logo
Seattle Web
Performance Group

    Using Continuous Integration for
               Performance Testing
•   Web Performance Best Practices
•   YSlow
•   Continuous Integration
•   Discussion: Web Performance Internally
•   Discussion: What’s Next?




Agenda
• Steve Souders
  • High Performance Web Sites
    • 14 rules
  • Even Faster Web Sites
    • More Best Practices for Web 2.0 Sites
• Yahoo Exceptional Performance Team
• OpenSource



Web Performance
Best Practices
• YSlow version 1
  • Based in Firebug
  • Firefox Plugin
  • 13 rules, 12 testable




Enter YSlow!
• YSlow version 2
  • 34 rules, 23 testable
  • Multiple ways to use it
    •   Firefox
    •   Opera
    •   Chrome
    •   Safari
    •   Command Line/NodeJS (HAR)
    •   PhantomJS (Headless)




More Better YSlow!
• Test, Test, Test
  • Test in production
     • Determine what to enhance & refine
  • Test during development
     • Make sure that your fixes work and that performance is getting
       better
  • Test after development
     • Make sure you are not degrading performance




YSlow! Best Uses
• Using YSlow to prevent performance degradation
  • Could use Command Line/NodeJS and HAR files
    • Create the HttpArchive files
    • Not really automatable
  • Use PhantomJS
    • Headless
    • Easy to Script




Continuous YSlow!
• Build PhantomJS
  • Pre 1.5 requires an xserver
• Download the YSlow code
  • It is obfuscated JavaSvript
  • Source is available on Github
• Run some tests Manually




Continuous YSlow!
• YSlow for PhantomJS supports multiple formats
  •   JSON (default)
  •   XML
  •   Plain Text
  •   JUnit
  •   TAP
• Can adjust other settings as well
  • Test thresholds
  • User-agents
  • Headers


Continuous YSlow!
• Jenkins and JUnit
         phantomjs /tmp/yslow.js -i grade --theshold “B” -f junit 
         http://webpage > yslow.xml
  •   -i grade – specifies that all rules will be tested
  •   --threshold “B” – specifies the lowest acceptable score for all rules as well
    as the overall score
  • -f junit – specifies the output format
  • http://webpage - is the reachable built page url of your project
  • yslow.xml – is the output results in junit format




Continuous YSlow!
• Jenkins and TAP (requires the TAP plugin)
         phantomjs /tmp/yslow.js -i grade --threshold “B” -f tap 
         http://webpage > yslow.tap
  •   -i grade – specifies that all rules will be tested
  •   --threshold “B” – specifies the lowest acceptable score for all rules as well
    as the overall score
  • -f tap – specifies the output format
  • http://webpage - is the reachable built page url of your project
  • yslow.tap – is the output results in junit format




Continuous YSlow!
Seawebperf 201207
Seawebperf 201207
• Insert Demo here!




Show Me The Money!
• The value of web performance
  • to consumer web sites
  • to non-consumer web sites




Discussion
• Future SeaWebPerf meetings
  •   What do we want to see?
  •   Who do we want to see?
  •   Who wants to help?
  •   No really, who will help?




More Talk
• YSlow
  - http://yslow.org
• Yahoo! Exceptional Performance group
  - http://tech.groups.yahoo.com/group/exceptional-performance/
• PhantomJS
  - http://phantomjs.org




References

More Related Content

PPTX
ApacheCon North America - Introduction to FlexJS
PDF
[Start] Playing
PDF
Save Time by Managing WordPress from the Command Line
PDF
Server Check.in case study - Drupal and Node.js
PDF
WP-CLI Talk from WordCamp Montreal
PDF
About Caching
PPTX
From zero to hero – learn how to automate from the gui
PPTX
Breakdown the GUI - PowerShell logging to automate everything
ApacheCon North America - Introduction to FlexJS
[Start] Playing
Save Time by Managing WordPress from the Command Line
Server Check.in case study - Drupal and Node.js
WP-CLI Talk from WordCamp Montreal
About Caching
From zero to hero – learn how to automate from the gui
Breakdown the GUI - PowerShell logging to automate everything

What's hot (20)

PPT
Next generation frontend tooling
PPTX
Zend Framwork presentation
PPTX
Secure your servers in time with JIT and JEA
PDF
Automating security with PowerShell
PDF
Blazor - The New Silverlight?
PDF
WP-CLI - WordCamp Miami 2015
PDF
JSFoo-2017 Takeaways
PDF
CFWheels - Pragmatic, Beautiful Code
PDF
Introduction to Django (GDays 2014)
PDF
Python to go
PDF
A few words on plugins
PDF
Web Performance Part 4 "Client-side performance"
PDF
Hello world - intro to node js
PPTX
WordPress Development Environments
PDF
The Dark Side of the WordPress Speed Optimizations
PDF
Testing Automaton - CFSummit 2016
PPTX
How to Supercharge your PHP Web API
PPTX
Knock out Introduction with samples (jsfiddle.net)
PDF
Migrate PHP E-Commerce Site to Go
PPTX
ExpressionEngine - Simple Steps to Performance and Security (EECI 2014)
Next generation frontend tooling
Zend Framwork presentation
Secure your servers in time with JIT and JEA
Automating security with PowerShell
Blazor - The New Silverlight?
WP-CLI - WordCamp Miami 2015
JSFoo-2017 Takeaways
CFWheels - Pragmatic, Beautiful Code
Introduction to Django (GDays 2014)
Python to go
A few words on plugins
Web Performance Part 4 "Client-side performance"
Hello world - intro to node js
WordPress Development Environments
The Dark Side of the WordPress Speed Optimizations
Testing Automaton - CFSummit 2016
How to Supercharge your PHP Web API
Knock out Introduction with samples (jsfiddle.net)
Migrate PHP E-Commerce Site to Go
ExpressionEngine - Simple Steps to Performance and Security (EECI 2014)
Ad

Viewers also liked (6)

PPT
Chapter06
DOC
Day 1 trane
PPT
Chapter04
PPT
Chapter15
PPT
Chapter01
KEY
O'Reilly webcast: Joshua Bixby on Mobile Performance Trends and Predictions
Chapter06
Day 1 trane
Chapter04
Chapter15
Chapter01
O'Reilly webcast: Joshua Bixby on Mobile Performance Trends and Predictions
Ad

Similar to Seawebperf 201207 (20)

PDF
Continuous Web Performance Monitoring with Jenkins
PPT
YSlow 2.0
PDF
Proactive Web Performance Optimization.(Marcel Duran)
PDF
前瞻性Web性能优化pwpo
ODP
YSlow For QA
PPT
Using Firebug & YSlow
PDF
Sensepost assessment automation
PDF
Testing The Testers
PDF
Ted Husted Presentation Testing The Testers Ae2009
PPTX
JavaScript performance patterns
KEY
Website Testing Practices
PPTX
Selenium WebDriver - Test automation for web applications
PDF
Testing Tools
PDF
Microsoft power point automation-opensourcetestingtools_matrix-1
PDF
Microsoft power point automation-opensourcetestingtools_matrix-1
PPTX
SPA 2009 - Acceptance Testing AJAX Web Applications through the GUI
PPT
Sanjeev ghai 12
PDF
Client-side Website Optimization
PPT
After YSlow "A"
ODP
2014 11 20 Drupal 7 -> 8 test migratie
Continuous Web Performance Monitoring with Jenkins
YSlow 2.0
Proactive Web Performance Optimization.(Marcel Duran)
前瞻性Web性能优化pwpo
YSlow For QA
Using Firebug & YSlow
Sensepost assessment automation
Testing The Testers
Ted Husted Presentation Testing The Testers Ae2009
JavaScript performance patterns
Website Testing Practices
Selenium WebDriver - Test automation for web applications
Testing Tools
Microsoft power point automation-opensourcetestingtools_matrix-1
Microsoft power point automation-opensourcetestingtools_matrix-1
SPA 2009 - Acceptance Testing AJAX Web Applications through the GUI
Sanjeev ghai 12
Client-side Website Optimization
After YSlow "A"
2014 11 20 Drupal 7 -> 8 test migratie

Recently uploaded (20)

PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Empathic Computing: Creating Shared Understanding
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Encapsulation theory and applications.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Electronic commerce courselecture one. Pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
NewMind AI Monthly Chronicles - July 2025
NewMind AI Weekly Chronicles - August'25 Week I
The Rise and Fall of 3GPP – Time for a Sabbatical?
Empathic Computing: Creating Shared Understanding
Advanced methodologies resolving dimensionality complications for autism neur...
Reach Out and Touch Someone: Haptics and Empathic Computing
Encapsulation theory and applications.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
MYSQL Presentation for SQL database connectivity
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Understanding_Digital_Forensics_Presentation.pptx
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Network Security Unit 5.pdf for BCA BBA.
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Electronic commerce courselecture one. Pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf

Seawebperf 201207

  • 1. Seattle Web Performance Group Using Continuous Integration for Performance Testing
  • 2. Web Performance Best Practices • YSlow • Continuous Integration • Discussion: Web Performance Internally • Discussion: What’s Next? Agenda
  • 3. • Steve Souders • High Performance Web Sites • 14 rules • Even Faster Web Sites • More Best Practices for Web 2.0 Sites • Yahoo Exceptional Performance Team • OpenSource Web Performance Best Practices
  • 4. • YSlow version 1 • Based in Firebug • Firefox Plugin • 13 rules, 12 testable Enter YSlow!
  • 5. • YSlow version 2 • 34 rules, 23 testable • Multiple ways to use it • Firefox • Opera • Chrome • Safari • Command Line/NodeJS (HAR) • PhantomJS (Headless) More Better YSlow!
  • 6. • Test, Test, Test • Test in production • Determine what to enhance & refine • Test during development • Make sure that your fixes work and that performance is getting better • Test after development • Make sure you are not degrading performance YSlow! Best Uses
  • 7. • Using YSlow to prevent performance degradation • Could use Command Line/NodeJS and HAR files • Create the HttpArchive files • Not really automatable • Use PhantomJS • Headless • Easy to Script Continuous YSlow!
  • 8. • Build PhantomJS • Pre 1.5 requires an xserver • Download the YSlow code • It is obfuscated JavaSvript • Source is available on Github • Run some tests Manually Continuous YSlow!
  • 9. • YSlow for PhantomJS supports multiple formats • JSON (default) • XML • Plain Text • JUnit • TAP • Can adjust other settings as well • Test thresholds • User-agents • Headers Continuous YSlow!
  • 10. • Jenkins and JUnit phantomjs /tmp/yslow.js -i grade --theshold “B” -f junit http://webpage > yslow.xml • -i grade – specifies that all rules will be tested • --threshold “B” – specifies the lowest acceptable score for all rules as well as the overall score • -f junit – specifies the output format • http://webpage - is the reachable built page url of your project • yslow.xml – is the output results in junit format Continuous YSlow!
  • 11. • Jenkins and TAP (requires the TAP plugin) phantomjs /tmp/yslow.js -i grade --threshold “B” -f tap http://webpage > yslow.tap • -i grade – specifies that all rules will be tested • --threshold “B” – specifies the lowest acceptable score for all rules as well as the overall score • -f tap – specifies the output format • http://webpage - is the reachable built page url of your project • yslow.tap – is the output results in junit format Continuous YSlow!
  • 14. • Insert Demo here! Show Me The Money!
  • 15. • The value of web performance • to consumer web sites • to non-consumer web sites Discussion
  • 16. • Future SeaWebPerf meetings • What do we want to see? • Who do we want to see? • Who wants to help? • No really, who will help? More Talk
  • 17. • YSlow - http://yslow.org • Yahoo! Exceptional Performance group - http://tech.groups.yahoo.com/group/exceptional-performance/ • PhantomJS - http://phantomjs.org References