Criação de um grid com Selenium utilizando Docker

A ideia deste post é mostrar as facilidades para criar um grid utilizando Docker. Nesse momento eu pergunto a você leitor: Já tentou criar um grid utilizando Selenium? Se a resposta for sim, você deve lembrar que não é uma atividade simples, uma vez que você terá que subir o hub e seus nodes, sendo que todo novo node é necessário registrar no grid e etc. Abaixo segue exemplo de como utilizar o grid na forma tradicional.

Para subir o grid:

java -jar selenium-server-standalone-2.48.2.jar -role hub

Imagem grid

Para subir o node:

java -jar selenium-server-standalone-2.48.2.jar -role node  -hub http://localhost:4444/grid/register

Imagem grid com nodes

É possível fazer isso de forma mais simples utilizando Docker. A própria comunidade do Selenium mantém as images Docker com o hub, Firefox e Chrome nodes. Vamos começar a criar nosso grid utilizando Docker.

Subindo nosso hub:

$ docker run -d -P --name selenium-hub selenium/hub:2.48.2

Imagem grid

Subindo nossos nodes:

  $ docker run -d --link selenium-hub:hub selenium/node-chrome:2.48.2
  $ docker run -d --link selenium-hub:hub selenium/node-firefox:2.48.2

Imagem grid

Agora se precisarmos criar outros nodes, precisaríamos criar novos containers:

  $ docker run -d --link selenium-hub:hub selenium/node-firefox:2.48.2

Imagem grid

O trabalho ainda está bem manual. É possível deixar este processo ainda mais simples utilizando o docker-compose. Abaixo exemplo do docker-compose para criar nosso grid.

Criando o grid com docker-compose:

hub:
  image: selenium/hub:2.48.2
  hostname: selenium-hub
  ports:
   - 4444:4444

chrome:
  image: selenium/node-chrome:2.48.2
  links:
   - hub

firefox:
  image: selenium/node-firefox:2.48.2
  links:
   - hub

Basta executar o comando:

docker-compose up -d

Imagem grid

Para criar novos nodes execute o comando:

docker-compose scale hub=1 chrome=3 firefox=3

Colocando a quantidade desejada para cada node.

Imagem grid

Rafael Chiavegatto

Analista de testes na FPF tech, possui mais de 7 anos de experiência em testes. Conhecimento em metodologias ágeis, automatização de testes, agile testing e da cultura DevOps.

Manaus - Amazonas