Here’s simple guide to setup a minimal Selenium Grid with Docker. For running Docker on your machine you will need Docker toolbox installed from https://www.docker.com/products/docker-toolbox. Below steps are done on a Mac.
We will use Hub and Node images from Selenium project hosted at Docker Hub https://hub.docker.com/r/selenium/
Next we need to create a docker-compose file describing how we want to run the Selenium Grid Hub and connect nodes to the Hub. In this example we will launch a multi-container setup with a Hub connected to Firefox and Chrome nodes:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
hub: | |
image: selenium/hub:2.52.0 | |
expose: | |
– 4444 | |
ports: | |
– 4444:4444 | |
node-firefox: | |
image: selenium/node-firefox:2.52.0 | |
links: | |
– hub | |
node-chrome: | |
image: selenium/node-chrome:2.52.0 | |
links: | |
– hub |
If you don’t have Docker running, then start the Docker daemon with default machine by using following command:
docker-machine start default
To connect to the Docker shell run following command:
docker-machine env
and then:
eval $(docker-machine env)
This will connect the terminal session to the Docker shell
Finally run the docker-compose command from the directory where docker-compose.yml file is stored:
docker-compose up
This will get required images from the Docker hub and launch the Hub node followed by Firefox and Chrome nodes which will be registered to the Hub. Now we have a minimal Selenium Grid up and running. We can point Selenium tests to this Grid for execution. In the next post we’ll see some advanced options and integration with Maven and Cloud tools.