Selenium is one of the most widely used open source automated testing suite for web applications. It can be used across many browsers and platforms, and enterprises across the board use the Selenium testing tool as part of their QA process.
At Srijan, we’ve extensively worked with Selenium to automate QA for several projects, depending upon the requirement of the project. Some of the key projects to mention are : Classic Driver, TRX, and OnCorps.
Here’s a brief look at the test automations we achieved with Selenium:
Classic Driver : This was an e-commerce site dedicated to selling, purchasing, and renting of vintage cars, motorbikes, stamps, yachts, and real estate. Srijan team helped them to automate their website to make sure the site functions as desired. The major functionalities where we used Selenium were:
- Creating/Editing/Deleting a product
- Searching a product based on certain criteria
- Purchasing the product (the complete process right from selecting the product to checking out the product)
TheRecordXchange - This project was a transcription product where audio files were converted to text files. Srijan used Selenium Webdriver to build the automation framework for the product, ensuring early identification of critical bugs, thorough regression testing, and faster time-to-market. The automation framework covered the following functions:
- Allocating the file to different group of people
- Notification once a file has been allocated
- Permission to different users
- Uploading the text file
- Searching the file based upon certain criteria
- Downloading the individual file
- Downloading the file in bulk
- Connecting with other users of the product
Now that we know what Selenium is capable of, let’s take a closer look at the tool.
Four Components of Selenium
- Selenium Integrated Development Environment (IDE) - This is a Firefox plugin that provides an interface to develop automated tests. It has a recording feature, which can record user actions as they are performed. This can be exported as a script and executed any number of times.
- Selenium RC - Selenium Remote Control is an automated testing tool. This tool allows developers to write automated web application tests in different programming languages. Currently Java, PHP,Python, Perl, C# and Ruby are supported. It has a server and client libraries.
- Selenium Grid - It is used in conjunction with Selenium RC. It helps in running tests on multiple environments, and boost slow running tests. It can also run parallel tests. For example, there are numerous test cases that have to be executed in multiple browsers. A grid can be set up with virtual machines. Each virtual machine can have 1 browser. When the tests are executed, Selenium Grid can process the test cases for each browser in parallel.
When to opt for Selenium Testing
- It is a great tool for testing web based applications
- Selenium can be used when there are many static test cases and repetitive test cases to be executed
- It is good for smoke testing, load testing, and regression testing
When to avoid Selenium Testing
- It is not a great idea to try and automate all test cases using Selenium
- Selenium is not a great option for testing non-web based or non-mobile based applications
- It does not support newer technologies like Angular JS
The Pros and Cons
- It supports multiple operating systems, programming languages, and browsers. For example, Selenium WebDriver supports Firefox, Safari, Opera, Internet Explorer, HtmlUnit, Phantomjs, Android (use Selendroid or appium), and iOS (use ios-driver or appium)
- Selenium RC supports recording and playback of tests in different browsers like Firefox, Internet Explorer, Google Chrome and Safari
- Selenium IDE supports automated testing in Firefox
- It supports different testing frameworks like JUnit, PHPUnit and TestNg
- It supports AJAX technologies
- If your project is already using another automated tool and wants to migrate to Selenium, it is not easy as you cannot convert automation scripts developed in other tools to Selenium compatible scripts
- The QA team will have to be adept at coding which means you have to invest time and effort and money. It can be used only for web based applications
- There is no professional support available. It means you have to rely on communities for solving issues. Issues may not necessarily be addressed promptly in the next release cycle like it is done in other commercial products
- It does not support manual scripts
So that was a quick look at the Selenium testing tool. While it is one of the most popular QA automation suites, the decision to use it depends upon actual project requirements. And we hope this post help you evaluate if Selenium is the right choice for your project.