[   Hacking Selenium
                                  ]
            Jason Huggins
              @jhuggins
         hugs@s...
1 - Why Selenium?
Browser Wars II


  6, 7 & 8          2, 3         3, 4 beta




              1.0          9.6
Add-ons
Browser configs
La...
Test Automation




  Source: - F.O.X.: http://www.flickr.com/photos/kv/499219/
Dynamic HTML - Ajax
End-to-end Workflows
Large tests
Any browser -
Any platform
Selenium Cumulative Downloads




                        9
Firms with: 100+ downloads
       January – October 2008




                                10
2 - Why not Selenium ?
Speed




Source: http://desertpastor.typepad.com/paradoxology/Slow%205.jpg
Flash, Java Applets,
  Silverlight, PDF




   Source: http://goldberg.berkeley.edu/art/big-images/doi-box-hi-res.jpg
Anything outside the
JavaScript sandbox




     Source: http://lug.mtu.edu/wiki/images/2/27/SANDBOX.jpg
Small tests
3 - A brief history of
       Selenium
ThoughtWorks Time &
                      Expense




Source: - Neal Ford: http://nealford.com/downloads/conferences/2006_...
First Attempt -
          JWebUnit
• Simulates the browser
• Can’t handle browser-specific bugs
• Can’t handle JavaScript ...
Second Attempt -
        DriftWood
• Mozilla extension (never published)
• Pro:
  – Drove a real browser, so it could hand...
Third Attempt - JsUnit
• Pro:
  – Can test JavaScript in the browser!
  – Works in Mozilla/Firefox, IE, and Safari!
• Con:...
It’s Green, but what did it
       really work?
Fourth Attempt - FIT
                (part 1)

• Pro:
  – More readable tests
  – Emphasis on functional testing
Example FIT test
Fourth Attempt - FIT
                (part 2)

Con:
• Wasn’t available for the “JavaScript
  platform” yet
• Limited list ...
Action Fixture picture
Forking FIT
• Selenium initially was an attempt to
  implement “FIT for web browsers”
• Ended up forking:
  – Wanted to se...
4 - Side Note:
What’s with the name?
“antidote for mecury
     poisoning”
“results - selenium”
Selenium and mercury detox
5 - Selenium Core
Selenium Core
 (TestRunner)
6 - Selenium IDE
Selenium IDE for Firefox
7 - Selenium
Remote Control
Selenium Remote Control




     Source: - http://www.dkimages.com/discover/previews/824/5100491.JPG
Selenium Remote Control
8 - Selenium Grid
Selenium Grid
Which is faster? (1 server, sequential tasks)

              4


              3
    Servers

              ...
Which is faster? (4 servers, parallel tasks)

              4


              3
    Servers

              2


           ...
p13y.com




Source: - http://www.flickr.com/photos/onetreehillstudios/2958752337/
Upcoming SlideShare
Loading in …5
×

Hacking Selenium @ JSConf

3,794 views
3,400 views

Published on

An overview and history of the Selenium web application testing tool, by Selenium's creator Jason Huggins. Presented on April 25, 2009 at JSConf in Arlington, Virginia.
http://jsconf2009.com/speakers.html#huggins

Published in: Technology
0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,794
On SlideShare
0
From Embeds
0
Number of Embeds
51
Actions
Shares
0
Downloads
135
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

Hacking Selenium @ JSConf

  1. [ Hacking Selenium ] Jason Huggins @jhuggins hugs@saucelabs.com seleniumhq.org | p13y.com JSConf - 25 April 2009
  2. 1 - Why Selenium?
  3. Browser Wars II 6, 7 & 8 2, 3 3, 4 beta 1.0 9.6 Add-ons Browser configs Languages/locales 3
  4. Test Automation Source: - F.O.X.: http://www.flickr.com/photos/kv/499219/
  5. Dynamic HTML - Ajax
  6. End-to-end Workflows
  7. Large tests
  8. Any browser - Any platform
  9. Selenium Cumulative Downloads 9
  10. Firms with: 100+ downloads January – October 2008 10
  11. 2 - Why not Selenium ?
  12. Speed Source: http://desertpastor.typepad.com/paradoxology/Slow%205.jpg
  13. Flash, Java Applets, Silverlight, PDF Source: http://goldberg.berkeley.edu/art/big-images/doi-box-hi-res.jpg
  14. Anything outside the JavaScript sandbox Source: http://lug.mtu.edu/wiki/images/2/27/SANDBOX.jpg
  15. Small tests
  16. 3 - A brief history of Selenium
  17. ThoughtWorks Time & Expense Source: - Neal Ford: http://nealford.com/downloads/conferences/2006_nfjs_canonical/Neal_Ford-Testing_with_Selenium-slides.pdf
  18. First Attempt - JWebUnit • Simulates the browser • Can’t handle browser-specific bugs • Can’t handle JavaScript in the DOM
  19. Second Attempt - DriftWood • Mozilla extension (never published) • Pro: – Drove a real browser, so it could handle JavaScript UI features • Con: – Not for IE or Safari :-( – XML Syntax for tests. Yuck!
  20. Third Attempt - JsUnit • Pro: – Can test JavaScript in the browser! – Works in Mozilla/Firefox, IE, and Safari! • Con: – Emphasis on single-page unit test (no page-to-page workflows) – Couldn’t see what it was doing
  21. It’s Green, but what did it really work?
  22. Fourth Attempt - FIT (part 1) • Pro: – More readable tests – Emphasis on functional testing
  23. Example FIT test
  24. Fourth Attempt - FIT (part 2) Con: • Wasn’t available for the “JavaScript platform” yet • Limited list of “actions” in the API
  25. Action Fixture picture
  26. Forking FIT • Selenium initially was an attempt to implement “FIT for web browsers” • Ended up forking: – Wanted to see what the browser was doing – Wanted a richer API
  27. 4 - Side Note: What’s with the name?
  28. “antidote for mecury poisoning”
  29. “results - selenium”
  30. Selenium and mercury detox
  31. 5 - Selenium Core
  32. Selenium Core (TestRunner)
  33. 6 - Selenium IDE
  34. Selenium IDE for Firefox
  35. 7 - Selenium Remote Control
  36. Selenium Remote Control Source: - http://www.dkimages.com/discover/previews/824/5100491.JPG
  37. Selenium Remote Control
  38. 8 - Selenium Grid
  39. Selenium Grid Which is faster? (1 server, sequential tasks) 4 3 Servers 2 1 Time Source: - http://factoryjoe.com/blog/wp-content/uploads/2006/10/pods.jpg
  40. Which is faster? (4 servers, parallel tasks) 4 3 Servers 2 1 Time 40
  41. p13y.com Source: - http://www.flickr.com/photos/onetreehillstudios/2958752337/

×