Leveraging Selenium Grid in Public/Private Cloud

Listen on the go!

Selenium-Grid is a method of testing using Selenium that enables simultaneous testing on different devices running different operating systems and browsers; basically a number of machines running multiple tests in parallel. Selenium Grid has two versions at the moment – Grid 1 and Grid 2 – but the newer Grid 2 is now more widely used. It has been designed to follow a hub and node fashion, where a single device known as the hub runs the test, and the nodes are constituted of various other machines that do the execution. Selenium-Grid supports distributed test execution.

When should one use Selenium-Grid?

Usually, there are two reasons for using Selenium-Grid.

  1. To run tests against multiple browsers (even varying versions of the same browser) running on different operating systems on different devices.
  2. To significantly reduce time consumed for a test suite to complete a test pass.

A Selenium-Grid is extremely useful for reducing time on large and long-running test suites by executing the test pass on multiple machines at the same time, thereby dividing the time consumed by the number of machines used. This allows teams using Agile software development to receive test feedback faster. As mentioned earlier, another feature is being able to run tests on multiple environments (browsers, browser versions, machines, operating systems) at the same time.

Since the core idea is to run automated tests with Selenium, the ability to scale your testing is paramount. Therefore, organizations look to build a local infrastructure that can help scale their testing or be able to test against more browsers or operating system platforms. The infrastructure, however, comes at a significant cost, and so becomes cumbersome to maintain. A large organization can afford to run such a setup, which offers its own benefits, such as control over the system, and greater efficiency. But the downsides are high setup costs and getting fault positives because of infrastructure malfunctions.

The alternative is to implement a public/private cloud service to help scale up test suites.

Selenium Grid

Clouds and Selenium-Grid

Using a public/private cloud enables the use of Selenium-Grid on the cloud, thereby entirely eradicating the need for any infrastructure and ensuing maintenance costs. A cloud-based testing bed is much more convenient to implement as depending on the cloud service provider one can immediately gain access to a large number of browser and operating system platforms to be able to test one’s mobile and web applications. Clouds are available for use throughout the day and help substantially increase developer productivity. Also, the use of a cloud provides various feedback mechanisms such as logging, screenshots and video support, thereby appreciably reducing debugging times.

Some of the benefits of using the cloud are:

  1. Support for any new testing platform or updates for existing ones is almost immediate. In the case of using actual infrastructure it could take weeks or months to source the required hardware to run tests depending on the testing platform – for example, a new operating system for a mobile device. But the cloud is updated almost instantly with the latest platforms that hit the market, be it a new browser version or support for a new type of device.
  2. Another feature of a public/private cloud is the ability to scale testing based on one’s specific requirements. It is up to you if you wish to choose to test against 10 or 50 browsers at the same time. The cloud is usually on standby and will create Virtual Machines based on your requests and needs.
  3. As already mentioned before, debugging becomes appreciably easier. Screenshots and videos are recorded at every step, so with this kind of visual information it becomes much easier to pin-point a test failure instead of having to wade through a complex Selenium log.

The only downside to using a cloud is that since one has to use the internet the use of a cloud is usually much slower as compared to a local grid, because the test has to travel to and from the cloud via a network that might not always be reliable. This issue can be worked around by running many parallel test runs, which shortens the overall testing time.

* On June 1, 2015, SeleniumHQ labeled Cigniti Technologies as an Silver Level Sponsor on their official website, www.seleniumhq.org. This recognition confirms Cigniti’s position as a specialized software testing service provider, committed to making sure clients get value from their QA investments. Contact Cigniti for you Selenium Test Automation needs.