Zalenium - a flexible, scalable container based Selenium Grid with features like video recording, live preview, basic authentication and a dashboard. Its Out-of-the-Box Docker makes it easy to run a Selenium based infrastructure smoothly.
We at Pickyourtrail, run a lot of automation frameworks with Selenium. But since our Software Infrastructure got dockerized, we also thought to migrate our automation framework to docker to build CI/CD pipeline in Jenkins. Moreover, we were finding it difficult to run our Selenium tests parallel to our local system. We were exploring different ways to address the above issues and finally decided to implement Zalenium within our automation framework. The other objective was to bring down the cost of remote servers with dockerization in place.
We explored the implementation of the Zalenium library to better understand its usage and how we can re-use it within our framework to attain our objective.
From our understanding, we got to know that it extensively depends on Selenium Docker images and Zalenium community has built in a wrapper around the Selenium docker image to bring up Selenium Grid with video recording, live preview and dashboard capabilities.
From our experience, below are the steps that needs to be followed to set up Selenium Grid in few seconds.
Once the Prerequisites are set, execute the below docker commands to set up Selenium Grid.
# To Pull docker-selenium docker pull elgalu/selenium # To Pull Zalenium docker pull dosel/zalenium # To Run it Zalenium docker run --rm -ti --name zalenium -p 4444:4444 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /tmp/videos:/home/seluser/videos \ --privileged dosel/zalenium start
Once the above steps are done, we need to point our tests to http://localhost:4444/wd/hub in our automation framework. This URL should be set as the argument to RemoteWebDriver along with DesiredCapabilities.
# To Stop Zalenium docker stop zalenium
Once the above steps are done, below are the URLs which will help us to view the execution status.
a) Grid Console:
b) Grid Execution console:
where refresh value can be altered as per our need in the above URL.
c) Test execution dashboard which will contain all our recorded tests:
The above commands will help us to create a basic version of the dockerized Selenium Grid. Apart from this, there are different configuration parameters that can be used along with the above command to fit our requirements. Below are the configuration parameters that we have used.
More Configuration Parameters
Instead of running the above commands everytime, I have written a bash script that will pull all the necessary docker images and the configuration parameters for setting up Selenium Grid.
GitHub Repo for the same:
This repo will contain detailed README.md which will guide you in setting up scalable Selenium Grid Infrastructure.
With Zalenium, we were able to resolve the major constraints that were faced in our previous automation framework. Listing a few of them.
References for Zalenium definition and functionality are taken from https://opensource.zalando.com/zalenium/.
Create your free account to unlock your custom reading experience.