Powerful Google developer tools for immediate impact! (2023-24 C)
JavaScript Testing VIA Selenium
1. JS Testing VIA Selenium
The good, the bad, the obvious.
@admc
2. Do you have a beer?
If you look at your hand, and it doesn’t have a beer...
Thanks Yammer for hosting!
This is going to be ninja fast and to the point.
3. Why? Again...
Web Applications - getting bigger
More complex
More browsers and devices
Client side apps are built in JS
Nothing new, still hard to test.
4. It’s better now than it was
Selenium 1
selenium.getEval("this.browserbot.getCurrentWindow().docum
ent.getElementById(‘mything’).click()"); - WTF
Selenium 2 / WebDriver
x.execute("window.location.href", function(o)
{ console.log(o) }) - WINNER
5. The Testable Bits
You should have backend unit tests
You should have web services tests
You should have JavaScript Unit tests
You should have JavaScript Functional tests
You should have client side SE Tests
8. Using Execute
JavaScript State
selenium.execute(“window.myApp.mystate == true”)
Network
selenium.execute_async + foo unit or Mock.js, JSMock, etc
Events
selenium.execute_async - Google it :) Some extra setup here
DOM
assert selenium.execute(“$(‘#mydiv’).width == ‘50px’”)
9. Client Side Unit Tests
Launch browser/environment
Load up FooUnit, QUnit, Jasmine, or your “home brew”
Selenium.execute to retrieve results
Don’t worry, we are going to beat this horse to death!
10. My Selenium 2 Vision
Launch Browsers - FAST
Navigate to pages
Execute JavaScript
Assert results
Drink a beer.
11. SE 2 is Important
The vision of a shared browser automation API
Continuing to be more performant
A community and dedication from Google
Ongoing browser and version support - new releases
12. Tool Chains
The power of SE 2
Client side JavaScript Unit Test Frameworks
Raw JavaScript access to the DOM
CI Systems
All things combined, we are captain tester!