Selenium — A free (open source) automated testing suite for web applications across different browsers & platforms. It consists of a set of software tools that facilitate testing. Selenium can be coded in multiple programming languages & it supports any operating system.
What are some reasons why a programmer would choose an automated testing suite like Selenium vs manual testing?
Limitations of Manual Testing
- Time consuming
- Requires a tester all the time
- Limited scope
- High risk of error
- Manual creation of logs & repositories
- No support for performance & batch testing
How does Selenium help?
- Fast execution since manual execution is avoided
- Time & cost effective since it’s open source
- No human error & more accurate results
- Lesser investment in human resources
- Supports re-testing
Selenium is not just a single tool but a suite of software, each with a different approach to support automation testing. It comprises of four components which include: Selenium IDE, Selenium RC, Selenium WebDriver & Selenium Grid
It’s a Chrome and Firefox plugin which records and plays back user interactions with the browser. Use this to either create simple scripts or assist in exploratory testing.
Selenium RC (remote control)
It has been replaced by Selenium WebDriver. I won’t be going over why this was deprecated but you can take a look at this article for more info: https://www.tutorialspoint.com/why-selenium-rc-is-deprecated
This is the successor of Selenium RC and is commonly referred to as just WebDriver. It uses browser automation APIs provided by browser vendors to control browser and run tests. Again but even more simply put, it controls the browser by directly communicating with it.
Although WebDriver can work with any browser, it alone can’t keep up with every browser out in existence so that’s where browser drivers comes into play. Drivers are in charge for controlling the actual browser and most drivers are created by the browser vendors themselves in accordance with the WebDriver specifications specified within the W3C standards. Keep note that some people refer to the drivers as proxies.
In a wrap, the Selenium WebDriver was created by the official Selenium team to communicate with any browser driver that is developed with the WebDriver standard. The WebDriver standard is a requirement used for the creation of browser drivers and the browser driver is the actual implementation of the WebDriver standard that links with the browser.
Why would you want to use Grid? To run your tests against multiple browsers, multiple versions of browser, & browsers running on different operating systems and to reduce the time it takes for the test suite to complete a test pass.
There are 2 components in Selenium Grid: Hub & Nodes. A Hub is a central point where all your tests are sent. Nodes are different Selenium instances that will execute tests on individual computer systems.
The Selenium Grid creates a link of multiple Selenium Servers called nodes and brings them all into the “hub”.