Como executar seus testes remotamente no Selenium Grid com Docker?



  • Boa tarde a todos, nesse artigo vou falar um pouco do Selenim Grid, e como utilizá-lo com Docker.

    Antes de mais nada, vou explicar um pouco do problema que eventualmente alguém pode ter passado e como o Selenium Grid pode ajudar a solucionar.

    Em certos momentos torna-se necessário validar a aplicação em diferentes combinações de navegadores e versões, podemos ter todos eles instalados em nosso ambiente local porém não é aconselhável gerenciar diferentes versões do mesmo navegador em uma única máquina.

    Se em seu projeto é necessário executar testes multibrowser porém não se consegue justificar o uso de soluções de terceiros como o Sauce Labs ou Browser Stack o Selenium Grid é a solução. Com o Selenium Grid você pode criar uma rede de máquinas de testes conectadas o que chamamos de nós. Toda essa rede é controlada por Hub, o que Hub faz é distribuir orquestrando seus testes em diferentes nós conectados. Cada nós basicamente pode ser um computador com uma combinação de Sistema Operacional e navegadores.

    A utilização do Selenium Grid se dá através do RemoteWebDriver, que precisa ser configurado para execução dos testes.

    Basicamente o RemoteWebDriver possui um cliente e um servidor. O cliente é o teste sendo executado através do webdriver e o servidor simplesmente um servlet Java. Para mais informações esse artigo fala melhor sobre a arquitetura do Selenium Grid.

    Para criar essa estrutura com Docker, o que precisamos inicialmente é o Docker instalado no Windows que pode ser a versão Community Edition ou configurado no Linux, a ideia continua sendo a mesma, vamos ter um container que será o hub e outros containers que serão os nós.

    Vamos utilizar as imagens do Selenium Grid Server diretamente na página SeleniumHQ.

    O primeiro passo é baixar imagem do Hub e inicializar o container do mesmo.
    Para isso iremos rodar o comando abaixo no prompt :
    docker run -d -p 4444:4444 — name selenium-hub selenium/hub:3.11.0-antimony

    Depois iremos fazer o mesmo para os nós Chrome e Firefox que basicamente serão dois containers:
    docker run -d -P -p 5900:5900 — link selenium-hub:hub -v /dev/shm:/dev/shm selenium/node-chrome-debug:3.11.0-antimony

    docker run -d -P -p 5901:5900 — link selenium-hub:hub -v /dev/shm:/dev/shm selenium/node-firefox-debug:3.11.0-antimony

    Após o término do download aconselho a rodarem o comando docker ps para verificar os containers que foram inicializados.
    Se deu tudo certo, o resultado será igual a imagem abaixo:
    alt text

    Para verificarem o selenium grid abra seu navegador cole o endereço abaixo:
    http://localhost:4444/grid/console
    Se tudo der certo seu browser irá acessar a página abaixo:
    alt text

    No próximo artigo irei explicar como rodar os testes nos containers utilizando Selenium , Autofac, Specflow e Unickq.SpecFlow.Selenium (Gerador de classe de teste para execução de testes automatizados de interface)

    Artigo original Medium


Log in to reply
 

Looks like your connection to Bug Overflow was lost, please wait while we try to reconnect.