Presentation is loading. Please wait.

Presentation is loading. Please wait.

Selenium and Selenium on Rails. Agenda  Overview of Selenium Simple Selenium Tests Selenium IDE  Overview of Selenium on Rails  Problems with Selenium.

Similar presentations


Presentation on theme: "Selenium and Selenium on Rails. Agenda  Overview of Selenium Simple Selenium Tests Selenium IDE  Overview of Selenium on Rails  Problems with Selenium."— Presentation transcript:

1 Selenium and Selenium on Rails

2 Agenda  Overview of Selenium Simple Selenium Tests Selenium IDE  Overview of Selenium on Rails  Problems with Selenium

3 Selenium Overview  Selenium is composed of four things: Selenium Core Selenium IDE Selenium RC Selenium on Rails

4 Overview of Selenium  Open source browser based integration test framework built originally by Thoughtworks  100% Javascript and HTML  Designed to make test writing easy  Ability to run whole suites of tests or individual tests  Ability to step through individual tests  Cross browser – IE 6/7, Firefox.8+, Opera, Safari 2.0+  Lets see an example of a selenium test suite…

5 Overview of Selenium  Downloads and Documentation can be found at: www.openqa.org www.openqa.org  Getting started: Download Selenium core off of www.openqa.orgwww.openqa.org Place the contents of the zip file on a web server in a selenium-core directory Go to http://web-server-host/selenium-core/index.html

6 Simple Selenium Tests  Selenium understands two types of files Tests Test Suites  Every test must be contained within a test suite  Both tests and test suites are defined by using simple tables in HTML  To execute a test suite you must point TestRunner.html at it

7 Format of Selenium Test Suite  More complex than Selenium Tests  Easiest just to copy TestSuite.html from the samples  Mostly a table that points to the tests

8 Format of a Selenium Test  HTML Table with 3 columns First Column: Selenium command Second Column: Required first parameter Third Column: Optional second parameter  Selenium commands are broken into 3 types: Actions – Command the browser to do something Accessors – Store/retrieve data from selenium variables Asserts – Verify that the browser is in a certain state

9 Format of a Selenium Test  Two types of Selenium Parameters Locators – Used to find elements in html trees Pattern Matchers – Used to verify values  Lots of locator types. Some examples are: Id based, xpath based, css selector based  Pattern matchers are typically exact matches or regular expressions  Lots more info at: http://www.openqa.org/selenium- core/reference.html  So lets try to write a simple Selenium test…

10 Gotchas in HTML Selenium Test Writing  Selenium is sensitive to the format of the table  All selenium command rows must have three columns or they will not be recognized as commands  You can only test URL’s that are in the same domain as the selenium core  Separation of concerns is hard – Tests become very dependent on the internal structure of the HTML

11 Wow, that was hard!  Lesson learned: Never ever write this by hand  There are a lot of commands - you can even add your own custom commands into the user- extensions.js  Firebug is very useful for developing your accessors

12 Selenium IDE  Firefox extension that allows recording and editing of tests  Can be download off of www.openqa.org  Allows easier development of tests  Can even output Ruby for it’s Ruby based API  Lets see it in action…

13 Selenium IDE  Much easier to use  Only really works with synchronous requests  Only automates commands, assert still must be entered by hand  Still requires lots of work to get Selenium to run it as part of a Test Suite

14 Selenium on Rails  Plugin for Rails that allows tests to be expressed in Ruby  Selenium core files no longer go in public – they are part of the Plugin  Supports two kinds of files SEL files and RSEL files SEL files are pipe separated files that look much like Selenium HTML RSEL files talk to a Ruby API that closely mirrors the normal commands – more info at: http://www.openqa.org/classes/SeleniumOnRails/TestBuilder. html

15 Selenium on Rails  Each test becomes a single RSEL file which contains Ruby calls closely resembling the Selenium Commands  RSEL files work much like views in Ruby and can be broken down into partials  Selenium on Rails takes over the /selenium/ URL space  RSEL files are used to automatically generate Selenium HTML table based tests  Selenium on Rails then generates it’s own Test Suite containing all of the tests

16 Selenium on Rails  RSEL files can reference fixtures and clear session state on startup  RSEL files support partials  Test development is much more Rails like -> Edit RSEL file, hit Reload in browser, run updated test  Lets see it in action…

17 That was still pretty hard…  Selenium on Rails does not initially make WRITING tests any easier  Selenium on Rails makes deploying and the development cycle of tests easier  Selenium on Rails makes writing tests more natural for RoR developers – it also gives your tests access to the rest of the code you have developed for your application  Selenium on Rails should really be seen as a starting point for developing a DSL to test YOUR application

18 Problems with Selenium  The Xpath locators are basically worthless because of the poor performance in IE  It is not designed to do AJAX type testing  waitForElement and waitForCondition are the tools that Selenium provides to deal with AJAX both of which add a lot of complexity to tests  Custom Selenium commands added to user- extensions.js are difficult to write – Avoid doing so unless you must  Timeouts are unreliable – sometimes tests hang  Not all Javascript events are supported

19 ?


Download ppt "Selenium and Selenium on Rails. Agenda  Overview of Selenium Simple Selenium Tests Selenium IDE  Overview of Selenium on Rails  Problems with Selenium."

Similar presentations


Ads by Google