Вы находитесь на странице: 1из 35

Automated Web Testing with Selenium

Deepak Mittal Dec 15, 2007

Agenda
Introduction to Selenium Quick Demo Different ways of using Selenium Best practices with using Selenium Questions & Feedback

www.XebiaIndia.com

Quick Poll

Do you do Web Testing? Do you do automated Web Testing? Do you need to support & test your webapp on multiple browsers? Which automated web-testing frameworks do you use?

www.XebiaIndia.com

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 4

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 5

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

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

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

Test Runner Mode

www.XebiaIndia.com

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 10

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 11

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

12

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 13

Test Runner Demo


See Demo suite Look at tests bundled with Selenium Running selenium test in slow and fast mode

www.XebiaIndia.com

14

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 15

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

16

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 17

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

18

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

19

Selenium RC Mode

www.XebiaIndia.com

20

Selenium RC Mode Demo

Run selenium server Look at sample tests

www.XebiaIndia.com

21

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 22

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

23

Ajax Support

Selenium supports testing Web 2.0 applications Monitor the DOM for completion of Async calls waitForCondition(script, timeout)

www.XebiaIndia.com

24

Useful Selenium Tools


Chris Pederick's Web Developer toolbar XPather Firebug

Xpath Checker

www.XebiaIndia.com

25

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 26

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 27

Selenium Limitations

Slow when testing all the edge cases Slow for testing fine-grained features setup and tear-down are called for each test

www.XebiaIndia.com

28

Selenium Strengths

For testing Ajax applications Multiple browsers Test full-stack

www.XebiaIndia.com

29

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

30

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

31

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 32

Summary

Can be used for unit-testing, regression testing, smoke-testing, integration and acceptance testing

www.XebiaIndia.com

33

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/

www.XebiaIndia.com

34

Feedback

mittaldeepak01@gmail.com

www.XebiaIndia.com

35

Вам также может понравиться