It has different approaches to supporting test automation. It will automate web-based applications through browsers. So only automating the web application is possible with the Selenium tool suite but not the other applications such as desktop, mobile, and client-server applications.
Table of Contents
Components of Selenium Tool Suite
Selenium was created by combining different software tools. Each of the tools has different roles and functionalities. Selenium RC, Selenium IDE, Selenium Grid, and Selenium Webdriver are the components of the Selenium tool suite which are explained below.
1. Selenium RC (Remote Control) or Selenium 1
Although selenium RC was the main project for a long time until selenium 2 was released. It was officially deprecated when Selenium version 2 was released. It will support mostly in maintenance mode that will provide some feature that is not available in Selenium 2.
2. Selenium IDE (Integrated Development Environment)
Selenium IDE is a rapid prototyping tool for building test scripts within a very less amount of time. It allows you to record, edit and debug the test case by providing very simple-to-use components. This tool will be most helpful for beginners to learn the commands used by Selenium while recording the test case. Although it was available as a Firefox addon for a long time, it has also been available on Chrome recently.
With this tool, you can easily record the test case and be able to play back any number of times whenever you will require. You can easily export the recorded scripts as reusable scripts in one of any programming languages that support them. Although it was a very simple and easy-to-use tool for beginners, it’s having some limitations. It only allows you to record and playback very simple test cases. It will not be possible to test dynamic websites or web applications. It’s neither scripted using any programming logic nor supporting data-driven testing.
3. Selenium Grid
Selenium grid is part of selenium version 1 that is combined with selenium RC to scale for large test suits and is able to run tests on remote machines. We can execute multiple test cases at the same time on different remote machines. If you run your test cases on multiple environments, you will use different remote machines to run the tests at the same time.
While testing with the selenium grid, one server acts as the hub where other machines contact the hub for obtaining browser access. This ability to run test cases on remote machines may be most helpful for spreading the testing load across several machines having different environments or platforms. So this feature of the selenium grid will help you to speed up your test automation process.
4. Selenium Webdriver
Selenium web driver is the latest addition among the tools in the Selenium tool suite. It is the upgraded version of Selenium RC. So it is much faster than Selenium RC since it makes direct calls to the browsers. Unlike the selenium RC, the selenium web driver does not require any special server for running or executing test cases.
Selenium webdriver supports all of the main browsers such as Mozilla Firefox, Google Chrome and Internet Explorer, and Safari. It allows you to write test scripts on different programming languages such as Java, C#, Ruby, Python, Perl, etc. Although it overcomes all the limitations of Selenium RC, generating a detailed test report is not possible with the Selenium web driver yet.
In 2008 Selenium and Webdriver were merged together and become a powerful tool called Selenium 2. It can overcome all the limitations of all other components of the Selenium tool suite. You can use this tool for automating more complex object-oriented applications.
How To Choose the Right Tool From Selenium Toolsuite
After knowing the components of the Selenium tool suite mentioned above, you may want to know which tool should choose for your test automation project. Let me explain something about it.
If you are new to test automation and you don’t have so much knowledge of programming or scripting language, you may start with Selenium IDE. It will help you to get some knowledge of basic selenium commands like type, open, clickAndWait, etc., and the locators like id, name, CSS selectors, etc. With the use of Selenium IDE, you will be able to create and run simple test cases quickly without any programming knowledge within a short period of time. I do not recommend using Selenium IDE for all the test automation projects.
Since Selenium IDE can only be used for short and simple test cases. You may use Selenium RC for the purpose of testing more complex projects than the projects on Selenium IDE. It will be most useful if you need to run test cases on different browsers and different operating systems. If you need to run multiple parallel tests with Selenium RC Selenium Grid will be most required to complete your project as soon as possible.
I would recommend to you Selenium webdriver for automating dynamic web applications using your custom programming language. If you are experienced with test automation and building a new test project from scratch, Selenium 2 will be the best option for continuing the project.