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.
Citation preview
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