Thursday, December 15, 2016

Lesson #1 - Introduction to the Selenium Suite


תוצאת תמונה עבור ‪selenium suite‬‏Selenium is one of the most efficient and popular automated test suite that the software industry has to offer when it comes to web application testing. 

Selenium is a free open source framework that combines different tools and APis, under four different components (I will review them in the next paragraphs) that you can use while automating your testing scenarios and to overcome the challenges that come with it. 

As said, the selenium suite contains four main components: 

1.       Selenium Remote Control (RC).
2.       Selenium Grid.
3.     Selenium Integrated DevelopmentEnvironment (IDE).
4.       Selenium WebDriver.

Selenium Remote Control (RC)

Selenium RC, was one of the earliest tools that developed in the selenium suite, it was designed to allow users to automate their tests with different programming languages supported multiple browsers (Think about it as the first evolution step to creating the WebDriver tool).

Selenium RC tool follows a Client/Server architecture where the client libraries (API that we can use to develop tests) can communicate with the RC server that forwarding each command to the browser for execution.

Supported with database testing 
Comparing to IDE, the implementation and configuration are slightly more complex.
Support in the main programming languages
Execution time may be slower than tests that are executed using the selenium web driver
Can be integrated with external testing platforms such as Junit
There is no direct connection to the browser; therefore, that execution has an additional layer between the code and the browser.
The User can capture screenshots during test execution
You cannot execute tests when the RC server is down
Support all major browsers
Almost not relevant after the creation of Selenium WebDriver
Will run faster than selenium IDE
Efficient error handling mechanism during the test execution

Selenium Grid 

Selenium Grid is another part if the selenium suite, once combined with Selenium RC, it's allowing us to run multiple tests parallelly against different browsers that are located under different servers (in other words you can run the entire test suite on multiple sources all at once). 

The concept of this tool is based on two main components, the first called “Hub”, this component is the central location where you can run your tests (there is only one Hub in a grid), the second component is called “Node”, each node is set as the selenium instance that allowing you to run tests that are inherited from the HUB.

-          The hub is the server where we load the tests into.
-          The HUB is configured only on one server.
-          There is a single HUB in a grid.
-        Each node can be configured with different artifacts (Browsers, Platforms and Hardware).
-        There can be more than one node in a grid.
-       Each node is equivalent to a selenium instance that will execute the tests configured on the hub.

Selenium Integrated Development Environment (IDE)

Selenium IDE is a basic Firefox “Add-on” that we can use to record, create and execute selenium scripts, those scripts simulate the user actions performed in the browser.

Does not require prior programming experience
You cannot use this plugin on other browsers besides Firefox
Great tool for beginners
Failure to support execution errors (does not provide test reporting)
No support for database testing
The Debug process is more simplified compared to other components.
Test execution is slower compared to RC/WebDriver
Support 'Auto Complete' to selenium common commands
Doe's not support a basic programming capabilities (Conditional statements, Loops, Etc.)
Simple implementation and configuration
No integration with external files (.doc, .bat Etc.)
Provide a great platform that a user can use to export the recorded browser operation of different selenium components (RC/WebDriver)
Does not support “Client-Server” applications
All scripts can be converted to an advance programming language


Selenium WebDriver 

Selenium WebDriver is a programming interface that allows the user to develop new and more advanced selenium scripts, using the most advanced programming languages (C#, PHP, Java Etc.).

The WebDriver component is more advanced that other components that come with the selenium suite such as Selenium RC/IDE, the main reasons:

·         WebDriver allowing us to write tests directly against the web browser.
·         WebDriver communicate directly to any selected browser (IE, Chrome etc.).

Selenium WebDriver is usually compared against the selenium RC; I created a small table that summarizes the advantages/Disadvantages of the web driver component (with a basic consideration against the RC component):

Has the ability to take screenshots during test execution
You must start the application browser prior to running the tests
Allow us to run scripts without starting the server
Complex and massive API (Compering the RC)
Support in all major browsers
Comparing to IDE, the implementation is more complicated
Support all major programming languages
Cannot be used without a programming knowledge
Mobile tests are supported
It’s impossible to get test results or any real-time notifications during the tests
Support simulation if any keyboard events
Doesn’t support the functionality of record and playback 


  1. Thanks for your post; selenium is most trusted automation tool to validate web application and browser. This tool provides precise and complete information about a software application or environment. Selenium Training in Chennai | Selenium Course in Chennai | Best Selenium training institute in Chennai

  2. Excellent sharing. Testing is a wonderful field for IT peoples. Want to learn Selenium Training reach GangBoard. Hadoop Online Training

  3. Thanks for sharing this useful information and that's great one.
    Web D School


My Presentations