Selenium is a popular open-source test automation suite for web applications and offers several advantages. Selenium testing also has certain challenges. In this article, we will review these advantages and challenges. We will also take a look at our Test Automation solution. It is a productivity tool from us at Experitest, and we are confident that it can resolve these challenges.
An introduction to Selenium
Jason Huggins developed Selenium in 2004 as an internal tool at the global technology company ThoughtWorks. Other developers contributed to the effort, and the result was something they called Selenium “Remote Control” (RC).
At the time of this article, Selenium consists of the following products:
- Selenium WebDriver (Selenium 2): The most popular product, dedicated to web testing automation. WebDriver is an improvement upon RC, and it enables testers to use a browser locally, or on a remote machine, using the Selenium server. It is an object-oriented API, and it drives the browser more effectively than Selenium 1.
- Selenium IDE: An open-source record and playback test automation tool for the web. Selenium IDE is available for Firefox and Chrome. Testers need to install the appropriate browser extension. Features include setting breakpoints, and pausing which makes debugging easy. Additionally, there is a command-line runner to make cross-browser test execution easier.
- Selenium Grid: This tool allows testers to run parallel tests on multiple machines. Testers can also use different browsers and versions on these machines. The Selenium Grid supports distributed test execution.
Selenium Usage is growing
An iDatalabs report mentions that Selenium holds over 27% of the software testing tools market. Companies like Google, Netflix, and HubSpot use it. As this Dice report shows, Selenium remains a hot skill to have at the end of 2018.
Advantages of Selenium
Starting with the positives Selenium offers multiple advantages, as follows:
- It’s a free suite of products, however, its’ popularity equals and exceeds that of many paid products. For that reason, many organizations prefer it over licensed test automation tools.
- Selenium fits well with DevOps and “Continuous Integration” (CI). It also supports Agile development. The practice of CI requires developers to integrate their code into a shared repository frequently. The test automation suit should handle this, and Selenium does.
- It supports all key platforms like Windows, Mac, and Linux.
- Selenium test automation works with all prominent browsers like Chrome, IE, Firefox, and Safari. What’s more, testers can create their test cases using popular IDEs like Eclipse, Visual Studio, and NetBeans.
- The Selenium Grid enables parallel testing in a distributed test environment. This reduces the test execution time.
- A vibrant community contributes to this open-source project. This makes it easier to share knowledge.
- Testers can extend its’ functionalities using a wide range of plugins like Appium and Selendroid.
Selenium has a few disadvantages though.
How SeeTest addresses the 5 key Selenium testing challenges
In many cases, articles about breaking down challenges offer a lot of complaints and very few solutions. We are going to try to do both. The 5 most common Selenium testing challenges are as follows:
Selenium automated testing works well with desktop browsers, however, the stand-alone Selenium WebDriver cannot run on native mobile operating systems. To accomplish cross-browser testing including native mobile apps, testers need to use plugins like Selendroid or Appium.
SeeTest addresses this in an innovative manner, as follows:
Selenium tests can be written to easily integrate with the SeeTest Mobile Device and Browser Lab. This gives testers access to a centralized hub of iOS, and Android devices, and hundreds of Browser combinations. Once you have the integration set up you will be able to run your Selenium-based tests on mobile devices.
Additionally, our devices are located in 8 different worldwide datacenters so any latency issues can be tested as part of your mobile testing suite. It is all fully ISO27001 secured as well.
Testers can accomplish parallel testing using the Selenium Grid. However, this has a few limitations, as follows:
- It takes significant effort to set up parallel testing.
- The performance of Selenium Grid deteriorates when the testers need to use a large number of node servers.
- The code executes only on the local machine where testers launch the test, and the remote machines only receive browser control commands. Cross browser testing this way can be challenging at times. Uploading or downloading files, launching additional software on the same machine can be hard.
“SeeTest Grid” enables testers to easily set up parallel testing. Testers can run parallel testing on more than 1,000 desktop and mobile browsers. As we have explained above, users can access the devices in the mobile device and browser lab. The DevOps teams in organizations benefit from this lab since devices and browsers are easily available to them.
Continuous Integration (CI)
Testers can use CI with Selenium automated testing, however, it poses a few limitations, as follows:
- When testers set up parallel remote testing for the entire test suite, they need to divide the test suite into several parts. A split test suite makes it harder to analyze test analytics. There is not a single consolidated test results/statistics, rather, testers get separate results for each part.
- Testers often need to add a new remote machine in the cloud test environment or remove one. This is not easy with Selenium CI testing.
SeeTest enables seamless integration. Testers can trigger test execution using any CI tool like Jenkins, Bamboo, etc., irrespective of the programming language, IDE, or testing framework. They can run automated tests 24×7.
The CI aspect benefits significantly from our mobile device and browser lab. Testers and DevOps can access the devices browsers from anywhere, at any time. Our lab is easy to set-up, and there are advanced management capabilities. All these features effectively make CI easier.
Reporting and analytics
Selenium offers impressive test automation capabilities, however, there are no reports. This is an obvious disadvantage. Testers, developers, and project managers need to see comprehensive test reports. Moreover, these reports and analytics need to lead to actionable results. In the case of Selenium, testers are tasked with either creating their own reports or integrating Selenium with any number of cumbersome and difficult to install reporting systems.
Neither of these is attractive solutions so we have addressed the lack of analytics as follows.seetest
- The platform creates a detailed report for every Selenium testing cycle.
- The reports contain screenshots, device/browser details, and test logs.
- Each step of the testing cycle is covered in the report.
- SeeTest has a robust analytics dashboard, which enables the project team to measure key metrics and gain insights.
- The analytics dashboard also has an automated root cause analysis feature. This helps the team in identifying corrective and preventive actions.
SeeTest: Helping testers with Selenium test automation
Open-source software is transforming the IT landscape. IT teams only had proprietary solutions to work with earlier, however, they now have a vast number of open-source alternatives. While this helps, open-source solutions aren’t always enough in the enterprise context. Selenium testing challenges we discussed are examples of this. Innovation is the answer, and this is where SeeTest makes an impact.