Docker
Docker é uma poderosa tecnologia de conteinerização que permite encapsular sua suíte de testes em um contêiner que se comporta da mesma forma em qualquer sistema. Isso pode evitar instabilidades devido a diferentes versões de navegadores ou plataformas. Para executar seus testes dentro de um contêiner, crie um arquivo Dockerfile
no diretório do seu projeto, por exemplo:
FROM selenium/standalone-chrome:134.0-20250323 # Altere o navegador e a versão de acordo com suas necessidades
WORKDIR /app
ADD . /app
RUN npm install
CMD npx wdio
Certifique-se de não incluir seu node_modules
na imagem Docker e instale-os ao construir a imagem. Para isso, adicione um arquivo .dockerignore
com o seguinte conteúdo:
node_modules
Estamos usando uma imagem Docker aqui que vem com Selenium e Google Chrome pré-instalados. Existem várias imagens disponíveis com diferentes configurações de navegadores e versões. Confira as imagens mantidas pelo projeto Selenium no Docker Hub.
Como só podemos executar o Google Chrome no modo headless em nosso contêiner Docker, precisamos modificar nosso wdio.conf.js
para garantir que façamos isso:
export const config = {
// ...
capabilities: [{
maxInstances: 1,
browserName: 'chrome',
'goog:chromeOptions': {
args: [
'--no-sandbox',
'--disable-infobars',
'--headless',
'--disable-gpu',
'--window-size=1440,735'
],
}
}],
// ...
}
Como mencionado em Protocolos de Automação, você pode executar o WebdriverIO usando o protocolo WebDriver ou o protocolo WebDriver BiDi. Certifique-se de que a versão do Chrome instalada na sua imagem corresponda à versão do Chromedriver que você definiu no seu package.json
.
Para construir o contêiner Docker, você pode executar:
docker build -t mytest -f Dockerfile .
Em seguida, para executar os testes, execute:
docker run -it mytest
Para mais informações sobre como configurar a imagem Docker, consulte a documentação do Docker.