Cada año , ingenieros de automatización de pruebas de todo el mundo investigan las últimas herramientas y técnicas para hacer que su entorno de automatización de pruebas sea más estable, más rápido y más fácil de usar y mantener. Esto es vital para garantizar que sus marcos se estén implementando a gran escala en todo momento en su empresa. De cualquier manera, los frameworks obsoletos e inflados pasan rápidamente de moda.
Se sabe que Selenium Grid es difícil de configurar, inestable y difícil de implementar y / o controlar la versión en una tubería de CI. Una forma más fácil, estable y conveniente es utilizar las imágenes de Selenium Docker compiladas previamente.
Nota : El único inconveniente de este método es que IE (Internet Explorer) no lo admite, ya que actualmente el sistema operativo Windows no se puede colocar en un contenedor.
Preparación para el trabajo
Para comenzar, primero debe instalar Docker y Docker Compose en su máquina. Si está usando Windows 10 o Mac, ambos se instalarán usando Docker Desktop .
Ejecutando su Grid
El repositorio oficial de Selenium Docker Hub contiene imágenes de Docker predefinidas para sus nodos de Selenium Hub, Firefox y Chrome.
La forma más fácil de usarlos en su Selenium Grid local es crear un archivo Docker Compose en el directorio raíz de su proyecto. Nombra el archivo simplemente
docker-compose.yml
.
He incluido un ejemplo a continuación que crea la siguiente cuadrícula:
- Un concentrador de selenio
- Un nodo de Chrome
- Un nodo de 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
El archivo Docker Compose describe cómo configurar su Grid. Para obtener más información sobre la creación de archivos de Docker Compose, consulte la documentación oficial .
Para iniciar su Grid, simplemente use cualquier terminal (
PowerShell
o cmd
en Windows), en el cual ejecute el siguiente comando desde el directorio raíz de su proyecto:
docker-compose up
Conexión a la red
Puede conectarse a su Selenium Grid de la misma manera que de costumbre, ya que el Hub está escuchando en el puerto 4444 de su máquina local. Aquí hay un ejemplo en el que configuramos nuestro controlador para usar nuestro nodo 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);
Luego, puede usar la biblioteca TestNG para ejecutar pruebas en múltiples nodos en paralelo como de costumbre.
Vale la pena señalar que se pueden iniciar varios navegadores en cada nodo. Sin embargo, esto no se recomienda y el uso de un navegador por nodo se considera la mejor práctica para un rendimiento óptimo.
Consejos y trucos adicionales
Si desea ver qué está pasando en el navegador para depurar sus pruebas, entonces vale la pena tener una
debug
versión de su docker-compose.yml
archivo que cargue los debug
nodos del navegador . Contienen un servidor VNC, por lo que puede ver el navegador mientras se ejecuta la prueba.
También es posible ejecutar navegadores sin cabeza para aumentar la velocidad (la forma habitual), y Selenium también proporciona
base
versiones de imágenes para que pueda crear sus propias imágenes si necesita instalar software adicional.
También puede implementar su Grid en Kubernetes o Swarm para crear una versión estable de Grid para su canalización de CI . Esto asegura una rápida recuperación o reemplazo de los acopladores en caso de falla.
Lee mas:
- Selenium: 1 — 2
- Selenium: 3 — 5