Test Automation Using
Selenium
Test Automation
Test automation is the use of software
To set test preconditions.
To control the execution of tests.
To compare the actual outcomes to predicted
outcomes.
To report the Execution Status.
Commonly, test automation involves
automating a manual process already
in place that uses a formalized testing
process.
2
Why and When To
Automate?
Frequent regression testing
Repeated test case Execution is required
User Acceptance Tests
Faster Feedback to the developers
Reduce the Human Effort
Test same application on multiple
environments like multiple OS or multiple
env like staging or dev or integration
Softsmith Infotech
Why and When To
Automate?
Test that need to run for multiple
data set
Test same application on multiple
browsers and their versions(latest-1
and latest)
Sauclab and browser stack that
provides multiple OS and browsers
Softsmith Infotech
Test Automation Tools
Quick Test Professional By HP
Rational Functional Tester By Rational (IBM Company)
Silk Test By Borland
Test Complete By Automated QA
QA Run (Compuware )
Watir ( Open Source)
Selenium ( Open Source)
Sahi (Open Source)
Softsmith Infotech
Selenium
Selenium is a robust set of tools that
supports rapid development of test
automation for web-based applications.
Selenium provides a rich set of testing
functions specifically geared to the needs
of testing of a web application.
Selenium operations are highly flexible,
allowing many options for locating UI
elements and comparing expected test
results against actual application behavior.
Softsmith Infotech
Three important thing for any UI
Automation tools:
Locating UI element
Performing actions on UI element
Check points to verify actual and
expected result
Softsmith Infotech
Selenium Features
Supports Cross Browser Testing. The
Selenium tests can be run on multiple
browsers.
Allows scripting in several languages like
Java, C#, PHP and Python.
Assertion statements provide an efficient way
of comparing expected and actual results.
Inbuilt reporting mechanism.
Supports multiple OS
Supports integration with different IDEs
Softsmith Infotech
Different Ides
Eclipse
NetBeans
IntelliJidea
Softsmith Infotech
Selenium Features
Supports integration with different IDEs
Supports integration with different unit
testing framework
C#-Nunit
Java-Junit and TestNg
Php-phpunit
Supports integration with number of CI tools
Like Jenkins ,Codeshape or teamcity
Supports both TDD and BDD based
approaches
Softsmith Infotech
10
Selenium Components
Selenium
Selenium
Selenium
Selenium
IDE add-on of firefox
Remote Control
Webdriver
Grid
Softsmith Infotech
11
Selenium IDE
Selenium IDE is an integrated development
environment for Selenium tests.
It is implemented as a Firefox extension, and
allows you to record, edit, and replay the
test in firefox
Selenium IDE allows you to save tests as
HTML, Java, Ruby scripts, or any other format
It allows you to automatically add assertions
to all the pages.
Allows you to add selenese commands as
and when required
Softsmith Infotech
12
Selenium IDE Installation
Using Firefox, first, download the IDE from the
SeleniumHQ downloads page When downloading
from Firefox, youll be presented with the Window
A. (See Next Slide)
Select Install Now. The Firefox Add-ons window
pops up, first showing a progress bar, and when
the download is complete, displays the Window B.
(See Next Slide)
Restart Firefox. After Firefox reboots you will find
the Selenium-IDE listed under the Firefox Tools
menu.
Softsmith Infotech
13
Selenium Installation
Window A
Window B
To run the Selenium-IDE, simply select it from the Firefox Tools menu. It opens
as follows with an empty script-editing window and a menu for loading, or
creating new test cases. (See Next Slide)
Softsmith Infotech
14
Selenium IDE - UI
Start and Stop
Recording
Replay
Toolbar
Selenese
Script
Editor
Accessor
Area
Selenium Log
Softsmith Infotech
15
Selenium Options
Selenium Options allow you to
Set The Text Encoding Format
Set the Default Page Time Out
Set The Base URL recording
option
Adding Selenium Core and IDE
Extension
Add Automatic Page Title
Assertions
There are also other options
under development
Softsmith Infotech
16
Recoding a Selenium Test
Case
Open Firefox that has the IDE installed
Open the base URL of the application to
record.
Keep the application in a common base state.
Go To Tools Selenium IDE and the IDE will
be opened
Now perform the operations on the
application as you are testing the application.
Once you are done with the recording click on
the stop recording button and save the test
case through the file menu. By default it will
be saved as a selenese script (HTML format)
Softsmith Infotech
17
General Selenese
Commands
clicking a link - click or clickAndWait
commands
entering values - type command
selecting options from a drop-down
listbox - select command
clicking checkboxes or radio buttons
- click command
Softsmith Infotech
18
Running Your First Selenium
Script
Make sure the application is in the
common base state.
Click on the run button. Here you can
also control the speed of the
execution using the
toolbar
Once the test is run you can view the
test log in the bottom of the IDE
window
Softsmith Infotech
19
Creating a Test Suite
In the Selenium IDE
you can create any
number of test cases
and save them as test
suite.
To Run the test Suite
click on the Play
entire test suite
button as shown
below.
Test Suite with
Test1 & test2
Softsmith Infotech
20
Playing The test Suite with Test
Runner
Test Runner allows you to run the test case in a
browser
loaded with the Selenium-Core
TestRunner.
Test runner is invoked by clicking the below
Shown button in the IDE
On Clicking the Test Runner Button you will the
window as seen in the next slide
Softsmith Infotech
21
Test Runner
Click this button to run all the tests
Softsmith Infotech
22
Running Options
Run a Test Case
Click the Run button to run the currently displayed test
case.
Run a Test Suite
Click the Run All button to run all the test cases in the
currently loaded test suite.
Stop and Start
The Pause button can be used to stop the test case while it
is running. The icon of this button then changes to indicate
the Resume button. To continue click Resume.
Stop in the Middle
You can set a breakpoint in the test case to cause it to stop
on a particular command. This is useful for debugging your
test case. To set a breakpoint, select a command, rightclick, and from the context menu select Toggle Breakpoint.
Softsmith Infotech
23
Running Options
Start from the Middle
You can tell the IDE to begin running from a
specific command in the middle of the test case.
This also is used for debugging. To set a start
point, select a command, right-click, and from
the context menu select Set/Clear Start Point.
Run Any Single Command
Double-click any single command to run it by
itself. This is useful when writing a single
command. It lets you immediately test a
command you are constructing, when you are
not sure if it is correct. You can double-click it to
see if it runs correctly. This is also available from
the context menu.
Softsmith Infotech
24
Adding Assertions to the
Script
Selenese allows multiple ways of checking for
UI elements.
Verifications and assertions are used to check if
an element is present somewhere on the page?
specific text is somewhere on the page?
specific text is at a specific location on the page?
Verifications and assertions are not one and the
same.
If an assertion fails, the script will be aborted
but if a verification fails the script will continue.
Softsmith Infotech
25
Verification Commands
verifyTextPresent
This command is used to
check if a particular text is
present in a page or not.
To add this command , While
recording the test steps right
click on the text item that you
want verify. Once right clicked
you can find an option Show
all commands. On Clicking it
you will find an option
verifyTextPresent, select it
Softsmith Infotech
26
Verification Commands
verifyTitle
This command is used to
check if the page title is
correct or not.
To add this command ,
While recording the test
steps right click any
where on the page that
you want verify. Once
right clicked you can find
an option Show all
commands. On Clicking
it you will find an option
verifyTitle, select it
Softsmith Infotech
27
Verification Commands
verifyElementPresent
This command is used to
verify if a page element is
present in the page or not.
To add this command ,
While recording the test
steps right click any
element on the page
that you want verify.
Once right clicked you
can find
an option
Show all commands.
On Clicking it you will
find
an
option
verifyElementPresent,
select it
Softsmith Infotech
28
Verification Commands
verifyValue
This method is used to check
if edit box has particular
value or if the check box is
on. Basically this method
returns the value of present
in the object.
To add this command , While
recording the test steps right
click any element on the
page that you want verify
the value of. Once right
clicked you can find an
option
Show
all
commands. On Clicking it
you will find an option
verifyValue, select it.
Softsmith Infotech
29
Assertions
Assertions are same as Verifications.
The only difference is, if the
assertions fail the script will abort. But
the script will continue run in case a
verification point fails.
The steps for inserting the assertions
is same as that of verification point.
While recording Right Click Show all
commands select an assertion.
Softsmith Infotech
30
Assertion Statements
assertTextPresent
This will assert if the text is present in the page.
assertText
This will assert if a particular element is having the particular text.
assertTitle
This will assert if the page is having a proper title.
assertValue
This will assert if a Text box or check box has a particular value
assertElementPresent
This will assert if a particular UI Element is present in the page.
Softsmith Infotech
31
Selenium WaitFor
Commands
waitForPageToLoad
This command will make the script to wait
till the page loads.
Syntax is waitForPageToLoad(timeout); Time
out is the maximum time the script will wait
for the page to load.
Softsmith Infotech
32
Other waitFor Commands
waitForAlert
This command will wait for the alert message to
appear
waitForTable
This command will wait for the Web table to
completely load in the page
waitForTitle
This command will for the page Title to appear on
the browser.
Other waitFor commands
Selenium has several other wait command like
waitForText, waitForPopup and so on. These
commands are generically called Synchronization
commands
Softsmith Infotech
33
Store Commands
Store command are used to fetch the
values from the application and store
it in a variable. These variables can
be used latter for validation purpose.
The Store command can be used to
retrieve the page title, text from the
page and other attributes from the
application.
Softsmith Infotech
34
Echo Command
Echo command is
used to print the
value in to the
selenium IDS log.
When printing a
variable use ${var}
There are some
limitations for this
methods this has to
be
used
with
caution
Softsmith Infotech
35
Limitations of Selenium IDE
Can run the test only on Firefox
No Programming logic (like loops,
conditional statements) can be applied
Selenium IDE can execute scripts
created in Selenese only.
It is difficult to use Selenium IDE for
checking complex test cases involving
dynamic contents
Softsmith Infotech
36
Links
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]