Selenium
description
Transcript of Selenium
SELENIUM
Speakers Aaron Tinio• [email protected]
Bernard Lago• [email protected]
Goals
• To be able to consider implementation of automated testing• To jumpstart Selenium usage
Pre-requisites
• HTML• Javascript• Ruby or other scripting/programming language
Selenium 101 Selenium Introduction Selenium IDE Basics Selenium RC Basics Selenium GRID Demo
SELENIUM INTRODUCTION
Selenium Introduction Why choose Selenium? Types of Functional Test Tools for Web Apps “Flavors” of Selenium Selenium IDE Basics
Why choose Selenium? Open source Backed by Industry Players Stable and Well Tested Platform-independent Uses a real browser Allows you to use your favorite programming language
Types of Functional Test Tools Use of a simulated browser: HttpUnit, HtmlUnit & WebTest Use of a real browser: Selenium, Watir (and FireWatir and
SafariWatir)
Flavors of Selenium Selenium Core Selenium IDE Selenium RC (and Selenium Grid)
SELENIUM IDE
Selenium IDE Installation, overview and usage Locators Actions, Accessors, Assertions Patterns
Locators id• id=gbar
name• name=q
dom• dom=document.links[0]
xpath• xpath=//html/body/center/form/table/tbody/tr/td[2]/input[2]
link• link=English
Actions open(url) click(locator) type(locator, value) select(locator, optionLocator)
Accessors
• storeText(locator, variableName)• from getText(locator) command
• storeLocation(variableName)• from getLocation() command
Assertions
• assertText(locator, pattern)• from getText(locator) command
• assertLocation(pattern)• from getLocation() command
OTHER ASSERTIONS:
• verifyText• waitForText• verifyLocation• waitForLocation
Patterns exact• exact:Google.com in English
glob• glob:*in English
regexp• regexp:Go+gle\.com in English
regexpi• regexpi:go+gle\.com in english
SELENIUM REMOTE CONTROL
Selenium Remote Control Selenium RC Architecture Selenium RC Server Selenium RC Ruby Client Driver Testing Frameworks for Ruby Prototyping tests in IRB Writing tests (Ruby / Test::Unit)
Selenium RC Architecture
Selenium Server: Interactive Mode is a way of rapidly prototyping tests. requires no coding whatsoever. allows you to immediately see the results.
Starting the server in interactive mode:java -jar selenium-server.jar -interactive [otherOptions]
Selenium RC (Ruby Client Driver)
• requires ruby
• requires rubygems
• requires selenium-client gem• gem install selenium-client
Testing Frameworks (Ruby)
• Test-Driven Development (TDD)• Test::Unit
• Behaviour-Driven Development (BDD)• Rspec
• TDD + BDD• Shoulda• test/spec
Interactive Ruby Shell
• is a shell for programming in the Ruby language
• allows the programmer to experiment with codes
Writing tests (Ruby / Test::Unit) Require the following in the test script• 'rubygems'• 'selenium/client'• 'test/unit'
Create a class that subclasses Test::Unit::TestCase.
Define “setup” method to set up the common test fixture.• create a new Selenium::Client::Driver object• run the “start” method on the selenium driver object
Add a method that begins with "test" to the class. • make assertions in the test method.
Define “teardown” method to tear down the test fixture.• run to “stop” method on the selenium driver object
Writing tests (Example)
SELENIUM GRID
Selenium Grid
• Selenium Grid Architecture
• Selenium Grid Demo
Selenium Grid Architecture
Selenium Grid Demo
• Running scripts on multiple machines using different browsers
• Sample Environment Configurations• Firefox on Linux• Internet Explorer on Windows• Firefox on Windows
QUESTIONS ???
REFERENCES
References
• http://seleniumhq.org/projects/ide/
• http://seleniumhq.org/projects/core/
• http://seleniumhq.org/projects/remote-control/
• http://selenium-client.rubyforge.org/
• http://selenium-grid.seleniumhq.org/
Maestrodev
• www.maestrodev.com• Forums• Downloads• Announcements
Thank you!!!