WD.js
        Functional Testing with Node




@admc
ME:         GITHUB.COM/ADMC



•   OSAF 2007, released Windmill Project
•   Slide 2008, released WatiN, FlexPilot
•   Mozilla 2009, released MozMill
•   Sauce Labs 2010 - 2012
•   Se Builder, FlexPilot
•   Jellyfish, WD
JS Test Stack
Test Stack
          Manual, otherwise still not
          impressed.


          WebDriver: WD (pronounced wood),
          WebDriverJS, webdriver-js


          Zombie.js, Phantom, Tobi



          QUnit
          Jasmine




          Vows
          Mocha
Jellyfish

• run JS everywhere
• headless & browsers
• one library, easy install
• mobile
• over zealous
WD.js, why?


• small project
• node.js -> web driver
• 3 methods
• easy to install (npm rocks)
Open Source
  ROCKS!


    <-- Thanks! (minus me) :)
Contributions
• code organization
• json wire protocol methods
• leak detection
• chaining, parallelization
• documentation
• tests (for realz) - wanna see?
Ecosystem
• node-wd-sync: sync version of WD.js
• node-wd-zombie: WD.js API for Zombie.js
  • both support coffeescript
• parallel-wd: multiple browser configs
• burnout: async, chainable, dry- library
• wd-unit: runner for jasmine, qunit (in
  progress)
Zombie.js

• 2001, I helped save lost pets
• code sample
• fast!
• frustrating API
• project needs attention
DEMO


- LPN: JS, Coffee
- Guinea-pig: JS, Coffee
- WD-Sync: Parallel and Non
Test Writing is :-(

• github.com/admc/sebuilder
  • (FF extension)
• plugin architecture in progress
• WD exporter in progress
• will help speed up the process
Lessons

• abstract locators
• pre-run with headless
• parallelize
• continuous integration
• holy grail
The Holy Grail
All the Links
WD.js: https://github.com/admc/wd
Parallel-WD: https://github.com/OniOni/parallel-wd
Node-WD-Sync: https://github.com/sebv/node-wd-sync
Node-WD-Zombie: https://github.com/sebv/node-wd-zombie
Mocha: http://visionmedia.github.com/mocha
Vows: http://vowsjs.org/
QUnit: http://docs.jquery.com/Qunit
Zombie.JS: https://github.com/assaf/zombie
Se-Builder: http://www.sebuilder.com
Selenium/WebDriver: http://seleniumhq.org/
Selenium Grid: http://selenium-grid.seleniumhq.org
Burnout: https://github.com/cdata/burnout
Thanks!



        Questions?




@admc

SFJS 6-19-2012

  • 1.
    WD.js Functional Testing with Node @admc
  • 2.
    ME: GITHUB.COM/ADMC • OSAF 2007, released Windmill Project • Slide 2008, released WatiN, FlexPilot • Mozilla 2009, released MozMill • Sauce Labs 2010 - 2012 • Se Builder, FlexPilot • Jellyfish, WD
  • 3.
    JS Test Stack TestStack Manual, otherwise still not impressed. WebDriver: WD (pronounced wood), WebDriverJS, webdriver-js Zombie.js, Phantom, Tobi QUnit Jasmine Vows Mocha
  • 4.
    Jellyfish • run JSeverywhere • headless & browsers • one library, easy install • mobile • over zealous
  • 5.
    WD.js, why? • smallproject • node.js -> web driver • 3 methods • easy to install (npm rocks)
  • 6.
    Open Source ROCKS! <-- Thanks! (minus me) :)
  • 7.
    Contributions • code organization •json wire protocol methods • leak detection • chaining, parallelization • documentation • tests (for realz) - wanna see?
  • 8.
    Ecosystem • node-wd-sync: syncversion of WD.js • node-wd-zombie: WD.js API for Zombie.js • both support coffeescript • parallel-wd: multiple browser configs • burnout: async, chainable, dry- library • wd-unit: runner for jasmine, qunit (in progress)
  • 9.
    Zombie.js • 2001, Ihelped save lost pets • code sample • fast! • frustrating API • project needs attention
  • 10.
    DEMO - LPN: JS,Coffee - Guinea-pig: JS, Coffee - WD-Sync: Parallel and Non
  • 11.
    Test Writing is:-( • github.com/admc/sebuilder • (FF extension) • plugin architecture in progress • WD exporter in progress • will help speed up the process
  • 12.
    Lessons • abstract locators •pre-run with headless • parallelize • continuous integration • holy grail
  • 13.
  • 14.
    All the Links WD.js:https://github.com/admc/wd Parallel-WD: https://github.com/OniOni/parallel-wd Node-WD-Sync: https://github.com/sebv/node-wd-sync Node-WD-Zombie: https://github.com/sebv/node-wd-zombie Mocha: http://visionmedia.github.com/mocha Vows: http://vowsjs.org/ QUnit: http://docs.jquery.com/Qunit Zombie.JS: https://github.com/assaf/zombie Se-Builder: http://www.sebuilder.com Selenium/WebDriver: http://seleniumhq.org/ Selenium Grid: http://selenium-grid.seleniumhq.org Burnout: https://github.com/cdata/burnout
  • 15.
    Thanks! Questions? @admc