Download Web Testing With Selenium and JUnit

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
WEB TESTING WITH
SELENIUM AND
JUNIT
David Ross Drake - SDET
06/21/11
What is Selenium?
Selenium
– Portable software testing framework for web
applications
• Selenium IDE
• Selenium Client Drivers
• Selenium RC
• Selenium Grid
2
06/21/11
Why use Selenium?
Why automated testing?
• Speed
• Repeatability
• Reliability
• Cost
• Requalification (security patches)
• Verisimilitude (vs HTMLUnit)
3
06/21/11
DEMONSTRATION:
SELENIUM IDE
Recording and playing back a test with Selenium IDE
4
06/21/11
Selenium Locators
• id – fastest method
• name
• link
• dom
• css
• xpath – slowest method
5
06/21/11
DEMONSTRATION:
EXPORTING TESTS
Exporting tests from Selenium IDE into JUnit and running
using Selenium RC
6
06/21/11
7
Selenium RC
Image: www.seleniumhq.org
06/21/11
Selenium Challenges
• Web app latency can cause tests to fail waiting on
page events
• Tests tend to lock in web pages, slowing iterative
development
• Selenium core is JavaScript based
• Not all browsers interpret the same way
• Can't perform cross-domain testing
• Testing secure connections is tricky, and often browser
specific
• Execution is slow (compared to most unit tests)
• Formatting problems are untested
8
06/21/11
Handling Event Latency
Example: An event is triggered on the page when a user enters invalid data.
public static void waitForPageValidation(DefaultSelenium selenium,
String id) throws InterruptedException {
for (int second = 0;; second++) {
if (second >= 5) {
fail("timeout waiting for event);
}
try {
if (selenium.isVisible(id)) {
break;
}
}
catch (Exception e) {}
Thread.sleep(1000);
}
}
9
06/21/11
Managing Change
Separate page content used in tests from actual test
logic. Most frequently used content:
• Page titles
• Field locators (ids, names)
10
06/21/11
11
Selenium 2
Advantages
Disadvantages
No Selenium RC installation
No final version released
(summer 2011)
Cross-domain testing
capabilities
Limited backwards
compatibility
Object-oriented API
Smaller number of supported
browsers
Mobile browser testing
06/21/11
Speeding Up Selenium
• Avoid xpath; have id attributes for all tested fields
• Reuse browser sessions (although this can cause
subsequent tests to fail if the session fails)
• Test local builds to reduce network latency
• Avoid using multi-page test flows for atomic tests
• Use parameterized tests to test multiple browsers at
once
• Parallelize tests to run multiple test classes at once
• Use cloud-based testing services
12
06/21/11
13
Testing Tools in Sauce Labs
• Sauce Scout – Manual testing using dozens of
os/browser/version combinations
• Sauce OnDemand – Automated cloud-based testing
using a drop in replacement for selenium RC
• Sauce Connect – Tunneling utility for connecting to an
application under test behind a firewall
• Sauce Builder – Selenium IDE modified to run tests
using Sauce OnDemand
06/21/11
14
Cloud-based testing in Sauce Labs
Image: www.saucelabs.com
06/21/11
DEMONSTRATION:
SAUCE LABS
Running tests using Sauce Labs and viewing the results
15
06/21/11
16
Additional Resources
http://www.seleniumhq.com - selenium docs and
downloads
http://www.saucelabs.com - cloud-based selenium
testing.
http://cargo.codehaus.org - thin wrapper for java
containers
http://ce-games.blogger.com - links to this presentation