Automation Testing Basics - Introduction
Automation Testing Basics - Introduction
Automation Testing Basics - Introduction
Introducing Selenium
Selenium is a set of different software tools each with a different
approach to supporting test automation. Most Selenium QA Engineers
focus on the one or two tools that most meet the needs of their project,
however learning all the tools will give you many different options for
approaching different test automation problems. The entire suite of tools
results in a rich set of testing functions specifically geared to the needs
of testing of web applications of all types. These operations are highly
flexible, allowing many options for locating UI elements and comparing
expected test results against actual application behavior. One of
Seleniums key features is the support for executing ones tests on
multiple browser platforms.
more powerful over time, using all sorts of special features new
browsers provide and making this restrictions more and more painful.
In 2006 a plucky engineer at Google named Simon Stewart started work
on a project he called WebDriver. Google had long been a heavy user of
Selenium, but testers had to work around the limitations of the product.
Simon wanted a testing tool that spoke directly to the browser using the
native method for the browser and operating system, thus avoiding the
restrictions of a sandboxed Javascript environment. The WebDriver
project began with the aim to solve the Selenium pain-points.
Jump to 2008. The Beijing Olympics mark Chinas arrival as a global
power, massive mortgage default in the United States triggers the worst
international recession since the Great Depression, The Dark Knight is
viewed by every human (twice), still reeling from the untimely loss of
Heath Ledger. But the most important story of that year was the
merging of Selenium and WebDriver. Selenium had massive community
and commercial support, but WebDriver was clearly the tool of the
future. The joining of the two tools provided a common set of features
for all users and brought some of the brightest minds in test automation
under one roof. Perhaps the best explanation for why WebDriver and
Selenium are merging was detailed by Simon Stewart, the creator of
WebDriver, in a joint email to the WebDriver and Selenium community
on August 6, 2009.
Why are the projects merging? Partly because WebDriver addresses
some shortcomings in selenium (by being able to bypass the JS
sandbox, for example. And weve got a gorgeous API), partly because
selenium addresses some shortcomings in WebDriver (such as
supporting a broader range of browsers) and partly because the main
selenium contributors and I felt that it was the best way to offer users
the best possible framework.
Selenium 2 is the future direction of the project and the newest addition
to the Selenium toolkit. This brand new automation tool provides all
sorts of awesome features, including a more cohesive and object
oriented API as well as an answer to the limitations of the old
implementation.
As you can read in Brief History of The Selenium Project, both the
Selenium and WebDriver developers agreed that both tools have
advantages and that merging the two projects would make a much
more robust automation tool.
Selenium 2.0 is the product of that effort. It supports the WebDriver API
and underlying technology, along with the Selenium 1 technology
underneath the WebDriver API for maximum flexibility in porting your
tests. In addition, Selenium 2 still runs Selenium 1s Selenium RC
interface for backwards compatibility.
Selenium 1 (aka. Selenium RC or Remote Control)
Selenium-Grid
Selenium-WebDriver
Google Chrome
Internet Explorer 6, 7, 8, 9, 10 - 32 and 64-bit where applicable
Firefox: latest ESR, previous ESR, current release, one previous
release
Safari
Opera
HtmlUnit
phantomjs
Android (with Selendroid or appium)
iOS (with ios-driver or appium)