Docker
Docker es una potente tecnología de containerización que permite encapsular su suite de pruebas en un contenedor que se comporta lo mismo en cada sistema. Esto puede evitar errores debido a diferentes versiones de navegador o plataforma. Para ejecutar tus pruebas dentro de un contenedor, crea un Dockerfile
en el directorio de tu proyecto, por ejemplo.:
FROM ianwalter/puppeteer:latest
WORKDIR /app
ADD . /app
RUN npm install
CMD npx wdio
Asegúrate de no incluir tu node_modules
en tu imagen de Docker y tener estos instalados al construir la imagen. Para eso añada un archivo .dockerignore
con el siguiente contenido:
node_modules
Estamos usando una imagen de Docker que viene con Google Chrome preinstalado. Hay varias imágenes disponibles con diferentes configuraciones del navegador. Echa un vistazo a las imágenes mantenidas por el proyecto Selenium en Docker Hub.
Como sólo podemos ejecutar Google Chrome en modo sin cabeceras en nuestro contenedor Docker, tenemos que modificar nuestro wdio. onf.js
para asegurar que hagamos eso:
export const config = {
// ...
capabilities: [{
maxInstances: 1,
browserName: 'chrome',
'goog:chromeOptions': {
args: [
'--no-sandbox',
'--disable-infobars',
'--headless',
'--disable-gpu',
'--window-size=1440,735'
],
}
}],
// ...
}
Como se menciona en Protocolos de automatización puede ejecutar WebdriverIO usando el protocolo WebDriver o Chrome DevTools. Si utiliza WebDriver asegúrese de que la versión de Chrome instalada en su imagen coincide con la versión de Chromedriver que ha definido en su paquete `.
Para construir el contenedor Docker se puede ejecutar:
docker build -t mytest -f Dockerfile .
Luego para ejecutar las pruebas, ejecuta:
docker run -it mytest
Para obtener más información sobre cómo configurar la imagen de Docker, consulte la documentación de Docker.