35
Automated Web Testing with Selenium Deepak Mittal Dec 15, 2007

Selenium

Embed Size (px)

Citation preview

Page 1: Selenium

Automated Web Testingwith

Selenium

Deepak Mittal

Dec 15, 2007

Page 2: Selenium

www.XebiaIndia.com 2

Agenda

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

Page 3: Selenium

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?

Page 4: Selenium

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

Page 5: Selenium

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

Page 6: Selenium

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

Page 7: 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

Page 8: Selenium

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

Page 9: Selenium

www.XebiaIndia.com 9

Test Runner Mode

Page 10: Selenium

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

Page 11: Selenium

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

Page 12: Selenium

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

Page 13: Selenium

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

Page 14: Selenium

www.XebiaIndia.com 14

Test Runner Demo

• See Demo suite

• Look at tests bundled with Selenium

• Running selenium test in slow and fast

mode

Page 15: Selenium

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)

Page 16: Selenium

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

Page 17: Selenium

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

Page 18: Selenium

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

Page 19: Selenium

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

Page 20: Selenium

www.XebiaIndia.com 20

Selenium RC Mode

Page 21: Selenium

www.XebiaIndia.com 21

Selenium RC Mode Demo

• Run selenium server• Look at sample tests

Page 22: Selenium

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

Page 23: Selenium

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

Page 24: Selenium

www.XebiaIndia.com 24

Ajax Support

• Selenium supports testing Web 2.0

applications

• Monitor the DOM for completion of Async

calls

• waitForCondition(script, timeout)

Page 25: Selenium

www.XebiaIndia.com 25

Useful Selenium Tools

• Chris Pederick's Web Developer toolbar

• XPather

• Firebug

• Xpath Checker

Page 26: Selenium

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

Page 27: Selenium

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# ...

Page 28: Selenium

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

Page 29: Selenium

www.XebiaIndia.com 29

Selenium Strengths

• For testing Ajax applications

• Multiple browsers

• Test full-stack

Page 30: Selenium

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

Page 31: Selenium

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

Page 32: Selenium

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

Page 33: Selenium

www.XebiaIndia.com 33

Summary

• Can be used for unit-testing, regression

testing, smoke-testing, integration and

acceptance testing

Page 34: Selenium

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/

Page 35: Selenium

www.XebiaIndia.com 35

Feedback

[email protected]