• +43 660 1453541
  • contact@germaniumhq.com

Creating a Selenium Grid with Germanium


Creating a Selenium Grid with Germanium

Setting up the infrastructure is trivial using a Germanium provisioned Selenium Grid. The container images are available in Docker, and even Germanium itself runs its regression tests against a Selenium grid now.

In the docker repository, Germanium offers now:

  • the Selenium Hub germaniumhq/hub,

  • a node that allows instantiating Chrome browsers, that will register to the Hub, published as germaniumhq/node-chrome, and

  • a node that allows instatiating Firefox browsers, that will also register to the Hub, published as germaniumhq/node-firefox

Bringing up the Germanium in the test environment is actually done with:

docker run -d \
    --name germanium-hub \
    -p 4444:4444 \
    germaniumhq/hub

docker run -d \
    --name germanium-chrome-node \
    -p 15901:5901 \
    --link germanium-hub:hub \
    germaniumhq/node-chrome

docker run -d \
    --name germanium-firefox-node \
    -p 15902:5901 \
    --link germanium-hub:hub \
    germaniumhq/node-firefox

The rest of the VMs that are used to test IE, are running independently and register to the same hub, as pictured in the following diagram:

germanium selenium grid architecture

Provisioning the Windows Machines

In order to install the Selenium nodes on the Windows machines, Germanium offers now a tool that will do that for you. You can find it at https://germaniumhq.com/get.

This standalone executable will detect the supported browsers installed on the platform, if Java is installed or not, and will download all the Selenium dependencies that are required, the binary drivers, install Java if necessary, and generate a configuration file so you can just connect the newly provisioned node into your Selenium Hub.

That means you just need to run the germanium-get.exe file, press Enter a bunch of times, type in the IP of your Selenium Hub, and start the node by double clicking the start batch file (you’ll even have a shortcut created on your desktop).

From that moment, you can just open browsers against your configured grid using the normal Germanium open_browser calls:

open_browser("ie:http://IP_OF_HUB:4444/wd/hub")

Of course, if you have other browsers registered into your hub, you can also use them:

open_browser("chrome:http://IP_OF_HUB:4444/wd/hub")