|
|
In the
previous
Selenium article, we
discussed what is Selenium
and how Selenium IDE can be
used to automate your web
applications. We also learnt
about the limitations of
Selenium IDE in terms of
language support (Only
Selenese ) and browser
support (Firefox only) .
These limitations can be
diminished by using Selenium
Remote Control.
Selenium
RC can be used for
automating web applications
for different web browsers
on different platforms using
your favorite language like
JAVA, C#, Perl, Python, Ruby
etc. You can use Selenium RC
with or without Selenium
IDE. Though, You might find
it easier to start with
Selenium IDE and than move
to Selenium RC for
customization and making
your automation more robust.
|
Selenium RC is a java server
which allows you to interact
with the web application
using any language. Your
script ( If not hosted along
with your application on the
server) can not talk to your
web application directly
because of the security
restrictions enforced by
browser ( Same origin policy
). Using selenium server,
you can bypass this
restriction and have your
automation scripts running
against any web application.
There are still some
limitations, for example
crossing domain boundaries,
using it for https etc., but
you can find solutions for
most of them.
Selenium
RC server is written in Java
and in order to use Selenium
RC you should have java
runtime environment (newer
than 1.5) installed on your
machine. Assuming that you
have downloaded and unzipped
Selenium Remote Control from
openqa.org and also have
java runtime on your system,
you can launch Selenium
Remote Control server using
following command ( Make
sure that you are into
directory where
selenium-server.jar is
located or this directory is
in your path variable ) -
java -jar selenium-server.jar
This command should start
Selenium Server on your
machine and your automation
scripts are ready to
interact with your web
application using this
server. You can leave this
server up and running while
you are developing and
executing your automation
scripts. If you wish, you
can also start Selenium
Remote Control in
interactive mode and start
playing with its various
commands on command prompt
itself. In order to do that,
you need to supply a command
line option called
interactive.
java -jar selenium-server.jar
-interactive
There are many command line
options that you can specify
while starting selenium RC.
Some of the interesting
options are multiWindow ,
forcedBrowserMode,
userExtensions,
browserSessionReuse and many
more.
For now lets move on to
client drivers for Selenium,
so that you can start using
it. In the above paragraphs,
we discussed that using
Selenium RC you can automate
your web application in most
of the popular languages.
This support is provided by
the mechanism of client
drivers. These client
drivers provide the
functionality to write
automation script in any
language and
interaction with the
Selenium Remote Control
Server. Client drivers for
most of the languages are
already available and since
it is open source you can
create your own client
driver if it is not
available for your language.
Details of extending
existing client drivers or
creating your own client
driver can be found on
openqa's website.
Once these client drivers
are available, you can
create a Selenium object in
your automation script by
specifying host name and
port of the Selenium server.
Using this Selenium object
you can handle all the
browser specific tasks for
your web application. Some
of the well known and
popularly known client
drivers are distributed
along with the selenium RC
itself. If you notice the
directories where you
unzipped the Selenium RC,
you will find folders for
various languages like Java,
Perl, Python etc. Detailed
instructions of using these
client drivers are available
on the respective section in
openqa, we will summarize
them here very briefly.
-
Java
- selenium-java-client--driver.jar
should be in the
classpath, you can use
this with JUnit or
TestNG
-
.NET
- add the
ThoughtWorks.Selenium.Core.dll
assembly as a reference
to your VS project, use
it with NUnit
-
Perl
- Install
Test::WWW::Selenium .
You will need make (on
unix) or nmake (on
windows) in order to use
it. You will also find
it useful to use
Test::more
-
Ruby
- To use the Ruby Client
Driver, just "require"
or "load" selenium.rb in
your Ruby script and
create a new
Selenium::SeleneseInterpreter
object
Similarly, for any client
driver steps are more or
less same. i.e, install or
use driver so that Selenium
object can be created in
your automation scripts
which can interact with the
browser.
If you
have followed along, at this
point you should have
Selenium RC server up and
running and you have also
installed Selenium client
drivers. You can now create
your automation scripts and
run them as you would run
any program in the language
of your choice. For example
-
java
YourAutomationClass
perl AutomationScript.pl
ruby AutomationScript.rb
And so on..
Though you can write your
automation scripts using
Selenium RC alone, we have
found it very easy to start
with Seleinum IDE and export
test cases in specific
language. Once you have
basic test case, you can use
language specific features
to customize them and making
them more robust.
Hope you have found this
article on Selenium RC
useful. In the Next article,
we will touch upon Selenium
Extensions and Selenium core
in more detail.
|