Have you ever tried to maintain your own Selenium Grid? It can be frustrating and time-consuming to keep everything up to date and running smoothly. It gets harder if you decide to scale up to handle more and more automated tests.
What if there was a better Selenium Grid way?
Wouldn’t it be cool to have to an out of the box solution that already has a way to quickly create a disposable, flexible, container-based Selenium Grid infrastructure that has features like video recording, live preview, basic authentication & online/offline dashboards?
I’m sure most you are shouting “Heck Yes!” at this point.
That’s why I was excited to learn about a new open source solution called Zalenium from its creator Diego Molina.
Why was Zalenium Created
Zalenium was created to solve the widespread issue that a lot of people have when you have some tests, and you want to start running them in parallel.
You start by getting into Selenium Grid but encounter roadblocks pretty quickly when trying to scale.
The most common issue is that you need to start to keep up with the release of the new Selenium Versions and to have them in synchronization with the browser releases and the browser drivers release like chrome driver, gecko driver and so on.
You end up spending a lot of time into configuring all these moving parts.
Zalenium was created to handle these issues for you automatically.
So does Zalenium Replace Cloud Service Providers?
Short answer no.
Diego described it more as a using a partnership.
If you are running your test against a small set of browsers and configurations like Chrome and Firefox – these browsers are already present today in Docker containers. But Diego teams thought they could balance their test runs between using a cloud service like Sauce Labs and a solution like Selenium.
The idea is not to replace cloud services like Sauce Labs. A cloud service is where you want to do more extensive testing. In that case, you need an enterprise solution.
You can use Zalenium as a combination solution.
For example, if you are a small startup and you don't have a big budget to have a full-blown cloud service you could use Zalenium for your regular iterations in the development process. But if you want to use a different browser like IE or Safari, you could have an account in Sauce Labs and proxy the tests and execute them in Safari or IE.
In this scenario, Zalenium will recognize that you want to use both and it will use these cloud service to give you the possibility of running your tests in a wide variety of browsers, but still keeping your budget and have the best of both worlds.
Other Benefits of using Zalenium for your Selenium Grid
The main benefit is that you will have your Grid running in your local network. So the latency is much smaller.
Usually, you have your testing environments in your network. So it just makes sense to have their grid in the same system. This way latency is much smaller when you are running your tests in a local grid.
Besides, you will get out of the box:
- Recordings of your test runs
- A dashboard where you can see all the tests that you executed by order of execution. You will see which browser was using if you were using integration with cloud services like Sauce Labs you will clearly see that what test was executed and the video that was recorded in the cloud service will be downloaded and added to the dashboard.
- You can also have tests running in different viewports for example if you want to start trying to test your website into a mobile resolution. You can say, please run this test in a specific screen width and height. So I will try to emulate an iPhone for example or a Nexus 5X. You can also for example run tests in a different time zone, and the list goes on and on.
- There is very user-friendly and extensive documentation on the GitHub repository.
- Zalenium can run in Docker, Kubernetes, AWS, Google Compute Engine and OpenShift.
When to use Zalenium
Setting up your own Selenium grid might not be hard. The challenge comes when you start using it to run a lot of test on it. This sometimes causes environment issues and instability.
Also dealing with browser updates and selenium browser driver compatibility is a pain. If you're dealing with any of this, you should check out Zalenium.
Give it a try and let me know what you think.
How To Install and Use Zalenium
Since writing this article a bunch of folks have asked me how to actually install Zalenium and get started using it. So I create this quick Zalenium Getting Started Guide video with a demo using Selenium IDE to run against a Zalenium grid.