Seawebperf 201207

17
Seattle Web Performance Group Using Continuous Integration for Performance Testing

description

The presentation given at the first Seattle Web Performance Meetup. Examples of continuous integration and YSlow to keep track of performance of your website as you update and add new features.

Transcript of Seawebperf 201207

  • 1. Seattle WebPerformance Group Using Continuous Integration for Performance Testing
  • 2. Web Performance Best Practices YSlow Continuous Integration Discussion: Web Performance Internally Discussion: Whats 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 OpenSourceWeb PerformanceBest Practices
  • 4. YSlow version 1 Based in Firebug Firefox Plugin 13 rules, 12 testableEnter 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 performanceYSlow! 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 ScriptContinuous 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 ManuallyContinuous 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 HeadersContinuous 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 formatContinuous 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 formatContinuous YSlow!
  • 12. Insert Demo here!Show Me The Money!
  • 13. The value of web performance to consumer web sites to non-consumer web sitesDiscussion
  • 14. 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
  • 15. YSlow - http://yslow.org Yahoo! Exceptional Performance group - http://tech.groups.yahoo.com/group/exceptional-performance/ PhantomJS - http://phantomjs.orgReferences