[   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,151
-1

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,151
On Slideshare
0
From Embeds
0
Number of Embeds
2
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/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×