• The Legend of the Headless Browser

  • Aaron Jorbin

  • Don't take Notes, go to jorb.in/wcphilly2012

  • On a cold dark night...

  • The headless browser is REAL

  • The headless browser is ALIVE

  • The headless browser is HERE TODAY

  • It's name is PHANTOMJS

  • And it is as powerful as you fear

  • Let's look at some things we can do:

  • Unit Tests

  • Integration Testing

  • Other Testing Tools

  • Scraping

  • Build Tools

  • Let's look at what these really mean

  • Fire Bugs, not Big Bird

  • You Didn't Build That

  • Malarkey : Irish for you didn't test your code

  • My code looks like a bean

  • Unit Testing is GLORIOUS

  • Grunt Can run our test for us automagically

  • Test Frameworks

  • Integration Testing

  • CasperJS

  • Verify your functionality works

  • PRO: Uses real data

  • CON: Uses real data

  • MOAR TESTING

  • <psa>

  • There is such a thing as too much testing

  • </psa>

  • Performance Testing

  • YSlow for PhantomJS

  • YSlow in Jenkins

    ZOMG, Jenkins shows we are failing some YSLOW tests.  Best get on that brah

  • Confess.js

  • Fastest Resource

  • Slowest Resource

  • Smallest Resource

  • Largest Resource

  • ASCII-art waterfall of the waits and receipts of each requested resource

  • HAR (http archive)

  • Scraping

  • pjscrape

  • What does the DOM say?

  • Build Tools

  • If you don't have a build script, you're doing_it_wrong()™

  • Build Scripts are great, you should have binders filled with them

  • SVG & Canvas to png

  • Screen Shots of your theme

  • Appcache manifest

  • Never worry about your theme's screen shots being out of date

  • Now What?

  • Intro to PhantomJS and CasperJS

  • CasperJS Exercises

  • PhantomJS Related Projects

  • Testing Google Analytics with PhantomJS

  • slippy

  • Effective Programming: More Than Writing Code

  • Do not fear the headless beast

  • Aaron Jorbin