0% found this document useful (0 votes)
177 views52 pages

Test Automation Using Selenium

The document discusses test automation using Selenium. It provides an overview of test automation, describes when and why to automate testing, discusses various test automation tools with a focus on Selenium, and provides details on the Selenium IDE and how to create and run automated tests using the Selenium IDE.

Uploaded by

Dương Dũng
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
Download as ppt, pdf, or txt
0% found this document useful (0 votes)
177 views52 pages

Test Automation Using Selenium

The document discusses test automation using Selenium. It provides an overview of test automation, describes when and why to automate testing, discusses various test automation tools with a focus on Selenium, and provides details on the Selenium IDE and how to create and run automated tests using the Selenium IDE.

Uploaded by

Dương Dũng
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1/ 52

Test Automation Using

Selenium
Project Team :
Dương Tiến Dũng – HE141018
Nguyễn Đình Huynh – HE141044
Đinh Thế Anh – HE141129
Nguyễn Quang Tùng – HE141033

Softsmith Infotech 1
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.
Softsmith Infotech 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

Softsmith Infotech 3
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 4
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 5
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.
Softsmith Infotech 6
Selenium Components

• Selenium IDE
• Selenium Remote Control
• Selenium Grid

Softsmith Infotech 7
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 8
Selenium IDE Installation
 Using Firefox, first, download the IDE from the
SeleniumHQ downloads page When downloading from
Firefox, you’ll 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 9
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)
10
Softsmith Infotech
Selenium IDE - UI
Start and Stop
Replay
Recording
Toolbar

Selenese
Script
Editor

Accessor
Area

Selenium Log

Softsmith Infotech 11
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 12
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 13
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 14
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 15
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 16
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 17
Test Runner

Click this button to run all the tests


Softsmith Infotech 18
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, right-click, and from the
context menu select Toggle Breakpoint.

Softsmith Infotech 19
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 20
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 21
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 22
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 23
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 24
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 25
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 26
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 27
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 28
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 29
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 30
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 31
Limitations of Selenium IDE
 Can run the test only on Firefox
 No Programming login (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 32
Selenium RC
 A solution to cross browser testing.
 A server, written in Java and so available
on all the platforms.
 Acts as a proxy for web requests from
them.
 Client libraries for many popular
languages.
 Bundles Selenium Core and automatically
loads into the browser
Softsmith Infotech 33
Installing Selenium RC
Software Required
 JDK 1.6 , selenium-remote-control-1.0.3 (this can be
downloaded from http://seleniumhq.org/download/)
Installation Procedure
 Selenium RC is simply a jar file and to run it we need
java installed. (JDK 1.6 is preferred)
 Once the Java is installed just unzip the selenium-
remote-control-1.0.3. zip which was downloaded from
the selenium site to a directory.

Softsmith Infotech 34
Selenium Test Automation Process
• First Generate the Script using selenium IDE in the
firefox IDE
• Once the Scripts are recorded add assertions where
ever required
• Now format the Selenese test into the language of your
choice. Please refer to the Image

Softsmith Infotech 35
Selenium Test Automation Process
• Once the Selenese script is converted into your
preferred language you can you can run them
using Selenium Server.
• For running the script you also need the client
driver for that particular language.
• To enhance the script we will require IDE like
netbeans or Eclipse IDE
• To Integrate the script and run them as a suite
we will require build integration tools like Maven
or Ant.

Softsmith Infotech 36
How Selenium Works

Softsmith Infotech 37
Running a Selenese Test on
Different Browsers
 Following are the steps to create a selenese test suite
and run a test suite using selenium RC
1) Record a test case using selenium IDE and save it as
“Test1.html” (say).
2) Record another test case using selenium IDE and save its as
“Test3.html” (say).
3) In this way you can record any number of test case using
selenium IDE and save them as <filename>.html
4) Then Create a New Test Suite using the File Menu. See the
Image Below.

Softsmith Infotech 38
Selenese Suite cont..
Add the created test cases in to the suite as shown
in Image1
Once the test cases are added to the suite save
them as a test suite as in Image2
The Open the command prompt and navigate to
the directory where Selenium RC (server) is
placed.
In the command prompt Enter the command as
shown below.

Softsmith Infotech 39
Selenese Suite cont..
Command :
 java -jar selenium-server.jar
-multiwindow -htmlSuite
"*iexplore"
"https://localhost/bookstore/"
"D:\testa.html" "C:\results.html“

 Once the command is run the


results will be stored in the
results.html file as shown
below.

Softsmith Infotech 40
Selenium Test Case Development
Using Java
Required Software
 Selenium RC Server jar , Selenium Java
Client Driver jar , JDK 1.6 +, Eclipse (or
any other IDE), Junit jar and testng jar
 For building the frame work we require
continuous build integration tools like Ant,
Maven or cruise control.

Softsmith Infotech 41
Client Drivers
Enables communication with Selenium Remote Control
Server.
 Functionality of Selenium is exposed via these drivers.
 Available in Ruby, Python, Java, C-Sharp …and so on.
 Give access to the rich features and libraries of the
language, including their unit testing framework.
 Makes it possible to develop automated scripts in the
same language as product.
 Which one you should use?
 Whatever make sense in your context. Most Popular is java and for
the training we will use java

Softsmith Infotech 42
Process of Developing Selenium
Java Scripts.
Following are the steps for generating the
test scripts in java
1) Record the Script in Selenium IDE and
format them into Java
2) Create a Selenium Java project in
Eclipse and load all the necessary jar
files
3) Copy the formatted Java code into the
Eclipse and run the test.
Softsmith Infotech 43
Formatting the recorded script into
Java
Steps of formatting the code into java

1) Open the Browser and open the


base URL of the application.
2) Open the Selenium IDE and start
recoding the test steps.
3) Once the recording is done go to
Menu  Options  Format 
Java(TestNG) –Selenium RC
4) You can see the java code in the
source tab of IDE. Save the test
case with .java extension.

Softsmith Infotech 44
Setting Up an Eclipse Project for
Selenium Automation
• Eclipse is an open source community whose projects are
focused on building an extensible development platform
for building Java applications and frameworks. Eclipse is
one of the best Java IDE and as a matter of face Eclipse
is much more than a Java IDE.
• We can configure a selenium project in eclipse and even
run the scripts from eclipse.
• Using eclipse its easy to enhance the recorded script.
We can add power to the recorded script by
parameterizing the test inputs and even validate the
back values.
• Eclipse also allows us to write reusable code for efficient
test automation.

Softsmith Infotech 45
Selenium-Grid
Selenium-Grid allows the Selenium-RC solution to scale for test
suites or test suites to be run in multiple environments.

• With Selenium-Grid multiple instances of Selenium-RC are


running on various operating system and browser configurations,
each of these when launching register with a hub. When tests are
sent to the hub they are then redirected to an available Selenium-
RC, which will launch the browser and run the test.

• This allows for running tests in parallel, with the entire test suite
theoretically taking only as long to run as the longest individual
test.

Softsmith Infotech 46
How to Grid
• Download Selenium Grid latest binary
distribution and unpack it on your computer.
• Go at the root of selenium grid directory and
validate your installation:
 cd selenium-grid-1.0
 ant sanity-check
 Go to the selenium distribution directory and
launch in a new terminal:
 ant launch-hub
 Check out that the Hub is running by looking at
its console in a browser:
 http://localhost:4444/console (See the Browser in the next
slide)
Softsmith Infotech 47
Softsmith Infotech 48
How to Run
 In a new terminal enter the following
command
• ant launch-remote-control
 Based on your target file you can run
either in sequence or in parallel

Softsmith Infotech 49
What's good?
• Relatively easy to automate web UI tests
• Record/Replay for regression tests
• RC allows integration with CI and
JUnit/FitNesse tests
What's bad?
• Speed: RC->Browser communication is a
speed bottleneck (run in grid, overnight)
• UI is brittle, tests depending on the UI
break a lot (DSTL might fix this, page
abstractions as well)
• Data-backed tests are not easily
repeatable (integrate with DB test engines)
Links
• http://gojko.net
• http://www.openqa.org
• http://www.solutionsiq.com/agile2008/agile-2008-
domain.php
• http://storytestiq.solutionsiq.com
• http://www.cubictest.com
• http://fitnesse.info/webtest

You might also like