Todos os anos , engenheiros de automação de teste de todo o mundo pesquisam as ferramentas e técnicas mais recentes para tornar seu ambiente de automação de teste mais estável, rápido e fácil de usar e manter. Isso é vital para garantir que suas estruturas sejam implementadas em grande escala em todos os momentos da empresa. De qualquer forma, estruturas desatualizadas e inchadas estão rapidamente fora de moda.
Selenium Grid é conhecido por ser difícil de configurar, instável e difícil de implantar e / ou controle de versão em um pipeline de CI. Uma maneira mais fácil, mais estável e conveniente é usar as imagens pré-construídas do Selenium Docker.
Observação : a única desvantagem desse método é que ele não é compatível com o IE (Internet Explorer), pois o sistema operacional Windows não pode ser colocado em um contêiner.
Preparação para o trabalho
Para começar, você precisa primeiro instalar o Docker e o Docker Compose em sua máquina. Se você estiver usando o Windows 10 ou Mac, ambos serão instalados usando o Docker Desktop .
Executando sua rede
O repositório oficial do Selenium Docker Hub contém imagens Docker pré-construídas para os nós do Selenium Hub, Firefox e Chrome.
A maneira mais fácil de usá-los em seu Selenium Grid local é criar um arquivo Docker Compose no diretório raiz do seu projeto. Nomeie o arquivo de forma simples
docker-compose.yml.
Incluí um exemplo abaixo que cria a seguinte grade:
- Um cubo de selênio
- Um nó do Chrome
- Um nó do Firefox
#docker-compose.yml
version: "3"
services:
selenium-hub:
image: selenium/hub:3.141.59-neon
container_name: selenium-hub
ports:
- "4444:4444"
chrome:
image: selenium/node-chrome:3.141.59-neon
volumes:
- /dev/shm:/dev/shm
depends_on:
- selenium-hub
environment:
- HUB_HOST=selenium-hub
- HUB_PORT=4444
firefox:
image: selenium/node-firefox:3.141.59-neon
volumes:
- /dev/shm:/dev/shm
depends_on:
- selenium-hub
environment:
- HUB_HOST=selenium-hub
- HUB_PORT=4444
O arquivo Docker Compose descreve como configurar sua grade. Para obter mais informações sobre a criação de arquivos Docker Compose, consulte a documentação oficial .
Para iniciar o seu Grid, basta usar qualquer terminal (
PowerShellou cmdno Windows), no qual execute o seguinte comando a partir do diretório raiz do seu projeto:
docker-compose up
Ligação à rede
Você pode se conectar ao Selenium Grid exatamente da mesma maneira que de costume, já que o Hub está escutando na porta 4444 de sua máquina local. Aqui está um exemplo em que configuramos nosso driver para usar nosso nó Chrome.
// Driver.java
protected static RemoteWebDriver browser;
DesiredCapabilities cap = new DesiredCapabilities();
ChromeOptions chromeOptions = new ChromeOptions();
cap.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
cap.setBrowserName("chrome");
driver = new RemoteWebDriver(cap);
Em seguida, você pode usar a biblioteca TestNG para executar testes em vários nós em paralelo, como de costume.
É importante notar que vários navegadores podem ser iniciados em cada nó. Isso não é recomendado, no entanto, e usar um navegador por nó é considerado a melhor prática para um desempenho ideal.
Dicas e truques adicionais
Se você quiser ver o que está acontecendo no navegador para depurar seus testes, vale a pena ter uma
debugversão do seu docker-compose.ymlarquivo que carregue os debug nós do navegador . Eles contêm um servidor VNC, para que você possa observar o navegador enquanto o teste está sendo executado.
Também é possível rodar navegadores sem interface para aumentar a velocidade (da maneira usual), e o Selenium fornece
baseversões das imagens também, então você pode criar suas próprias imagens se precisar instalar software adicional.
Você também pode implantar seu Grid no Kubernetes ou Swarm para criar uma versão estável do Grid para o pipeline de CI . Isso garante a rápida recuperação ou substituição das janelas de encaixe em caso de falha.
Consulte Mais informação:
- Selenium: 1 — 2
- Selenium: 3 — 5