Upload
daksh-sharma
View
14.194
Download
1
Tags:
Embed Size (px)
Citation preview
Automated Web Testingwith
Selenium
Deepak Mittal
Dec 15, 2007
www.XebiaIndia.com 2
Agenda
• Introduction to Selenium• Quick Demo• Different ways of using Selenium• Best practices with using Selenium• Questions & Feedback
www.XebiaIndia.com 3
Quick Poll
• Do you do Web Testing?• Do you do automated Web Testing?• Do you need to support & test your web-
app on multiple browsers?• Which automated web-testing frameworks
do you use?
www.XebiaIndia.com 4
What is Selenium?
• A JavaScript based
• Open Source
• Web testing tool
• That supports testing Web 2.0 applications
• On multiple browsers
• And multiple Operating Systems
www.XebiaIndia.com 5
What is Selenium
• Acceptance Testing tool for web-apps
• Tests run directly in browser
• Implemented entirely using browser
technologies - • JavaScript• DHTML• Frames
www.XebiaIndia.com 6
Origins of Selenium
• Developed by ThoughtWorks to test new
time and expenses system
• Selenium is the key mineral to protect body
from mercury toxicity
• http://www.openqa.org/selenium
www.XebiaIndia.com 7
Selenium Modes
• Test Runner Mode• test cases in HTML tables
• Record-Playback mode (Selenium IDE)
• Selenium Remote Control (RC) Mode• test-cases in your language of choice
www.XebiaIndia.com 8
Selenium Modes
• Test Runner Mode• test cases in HTML tables
• Record-Playback mode (Selenium IDE)
• Selenium Remote Control (RC) Mode• test-cases in your language of choice
www.XebiaIndia.com 9
Test Runner Mode
www.XebiaIndia.com 10
Selenium HTML Tests
• Selenium tests are HTML files
• Selenium interacts with the DOM served to
browser
• Selenium is agnostic of server side
technology
• Selenium HTML language is called
Selenese
www.XebiaIndia.com 11
Selenese
• Selenium declarative DSL : Selenese
• Selenium understands two types of HTML
files (which have simple HTML tables):–Tests–Test Suites
• Every test is contained within a test suite
• Point TestRunner.html at the test suite to
run it
www.XebiaIndia.com 12
Format of a Selenium Test
• HTML Table with 3 columns –First Column: Selenium command–Second Column: Target of command–Third Column: Optional parameter
www.XebiaIndia.com 13
Selenium Concepts
• Element Locators : specify HTML elements
• Patterns : for pattern matching values
• Action : manipulate app state
• Accessors : store results in variables
• Assertion : verify that the app is in a certain
state
www.XebiaIndia.com 14
Test Runner Demo
• See Demo suite
• Look at tests bundled with Selenium
• Running selenium test in slow and fast
mode
www.XebiaIndia.com 15
Problems with HTML Tests
• Selenium is sensitive to the format of the
table
• No separation of concern
• Duplication is a major issue
• Tests need to be deployed with AUT
(Application under Test)
www.XebiaIndia.com 16
Selenium Modes
• Test Runner Mode• test cases in HTML tables
• Record-Playback mode (Selenium IDE)
• Selenium Remote Control (RC) Mode• test-cases in your language of choice
www.XebiaIndia.com 17
Selenium IDE
• Very useful tool for beginners
• Firefox extension which allows record/play
testing paradigm
• Automates commands, but asserts must be
entered by hand
• Creates the simplest possible Locator
• Based on Selenese
www.XebiaIndia.com 18
Selenium IDE Demo
• Look at firefox extension
• Look at various possible commands
• Record a test on AUT and play-back
• Save the test at HTML file
• Export the test as Java / Ruby
www.XebiaIndia.com 19
Selenium Modes
• Test Runner Mode• test cases in HTML tables
• Record-Playback mode (Selenium IDE)
• Selenium Remote Control (RC) Mode• test-cases in your language of choice
www.XebiaIndia.com 20
Selenium RC Mode
www.XebiaIndia.com 21
Selenium RC Mode Demo
• Run selenium server• Look at sample tests
www.XebiaIndia.com 22
Maintaining Selenium Tests
• Test code is just like production code
• Needs re-factoring, abstraction
• API for the application
• Can build tests from API building blocks
• Try to maintain meaning – in test names,
variable names, comments, and suite
organization
www.XebiaIndia.com 23
Selenium with Continuous Integration
• Run Selenium tests as part of the build
• Can generate HTML reports, published to
entire team
• Helps catch bugs ASAP
www.XebiaIndia.com 24
Ajax Support
• Selenium supports testing Web 2.0
applications
• Monitor the DOM for completion of Async
calls
• waitForCondition(script, timeout)
www.XebiaIndia.com 25
Useful Selenium Tools
• Chris Pederick's Web Developer toolbar
• XPather
• Firebug
• Xpath Checker
www.XebiaIndia.com 26
Selenium Best Practices
• Use Ids wherever possible (xpaths make
the tests brittle)
• Use data-driven tests. Use a JSP/PHP
page to generate tests
• In order to generate unique Ids, use
timestamp
• Use the right level of granularity
www.XebiaIndia.com 27
What have we not covered?
• Continuous Integration set-ups
• Creating screencasts using Selenium
• Testing of Ajax applications
• Selenium Commands in detail
• User Extensions
• Using Python/Ruby/C# ...
www.XebiaIndia.com 28
Selenium Limitations
• Slow when testing all the edge cases
• Slow for testing fine-grained features – set-
up and tear-down are called for each test
www.XebiaIndia.com 29
Selenium Strengths
• For testing Ajax applications
• Multiple browsers
• Test full-stack
www.XebiaIndia.com 30
Interesting Possibilities
• Delivering Selenium Screencast as
Documentation to end-users
• Creating a report with screenshots
• A Server having VMWare images of various
OS/browser and each submitting a report
back
www.XebiaIndia.com 31
Summary
• Selenium is a testing framework for Web
Applications
• Drivers allow web testing in language of
choice
• Test scripts are code: need maintenance,
re-factoring
www.XebiaIndia.com 32
Summary
• Can be used on Developer machines
• Most valuable when used with CI set-up
• Can be used to make screen casts
• Tests run on real browser – most people
use it to test their JavaScript works
predictably on all browsers
www.XebiaIndia.com 33
Summary
• Can be used for unit-testing, regression
testing, smoke-testing, integration and
acceptance testing
www.XebiaIndia.com 34
References / Attribution
• Neal Ford's presentation on Selenium
• Selenium site
This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License http://creativecommons.org/licenses/by-nc-sa/3.0/