Selenium Grid es una herramienta que permite ejecutar pruebas de manera distribuida en múltiples máquinas y navegadores. Esto es especialmente útil para realizar pruebas en paralelo y en diferentes entornos de navegador, lo que puede acelerar significativamente el proceso de prueba.
Objetivos de Aprendizaje
Al final de esta sección, deberías ser capaz de:
- Comprender la arquitectura de Selenium Grid.
- Configurar un hub y nodos en Selenium Grid.
- Ejecutar pruebas en paralelo utilizando Selenium Grid.
- Arquitectura de Selenium Grid
Selenium Grid sigue una arquitectura de hub y nodo:
- Hub: Es el punto central que recibe las solicitudes de prueba y las distribuye a los nodos disponibles. Solo puede haber un hub en una configuración de Grid.
- Nodo: Son las máquinas que ejecutan las pruebas. Un nodo puede ser una máquina física o virtual y puede tener diferentes navegadores instalados.
Tabla de Comparación: Hub vs Nodo
Característica | Hub | Nodo |
---|---|---|
Función | Recibe y distribuye las pruebas | Ejecuta las pruebas |
Cantidad | Uno por Grid | Múltiples por Grid |
Requisitos | Java instalado | Java y navegadores instalados |
- Configuración del Hub
Para configurar un hub, sigue estos pasos:
-
Descargar Selenium Server: Asegúrate de tener la última versión de Selenium Server. Puedes descargarla desde el sitio oficial de Selenium.
-
Iniciar el Hub: Abre una terminal o línea de comandos y ejecuta el siguiente comando:
java -jar selenium-server-standalone-x.xx.x.jar -role hub
Reemplaza
x.xx.x
con la versión que hayas descargado. -
Verificar el Hub: Una vez iniciado, puedes verificar que el hub está corriendo accediendo a
http://localhost:4444/grid/console
en tu navegador. Deberías ver la consola de Selenium Grid.
- Configuración de los Nodos
Para configurar un nodo, sigue estos pasos:
-
Iniciar el Nodo: En la máquina que actuará como nodo, abre una terminal y ejecuta el siguiente comando:
java -jar selenium-server-standalone-x.xx.x.jar -role node -hub http://<hub-ip>:4444/grid/register
Asegúrate de reemplazar
<hub-ip>
con la dirección IP del hub. -
Configurar Capacidades del Nodo: Puedes especificar las capacidades del nodo (como el navegador y la versión) usando un archivo de configuración JSON. Aquí tienes un ejemplo básico:
{ "capabilities": [ { "browserName": "chrome", "maxInstances": 5 } ], "configuration": { "nodeTimeout": 120, "port": 5555, "hubPort": 4444, "hubHost": "<hub-ip>" } }
Guarda este archivo como
nodeConfig.json
y ejecuta el nodo con:java -jar selenium-server-standalone-x.xx.x.jar -role node -nodeConfig nodeConfig.json
- Ejecutar Pruebas en Paralelo
Una vez que el hub y los nodos están configurados, puedes ejecutar pruebas en paralelo. Aquí tienes un ejemplo de cómo configurar un script de prueba para ejecutarse en Selenium Grid:
from selenium import webdriver # Configuración del WebDriver para Selenium Grid capabilities = { "browserName": "chrome", "platform": "ANY" } # Conectar al hub de Selenium Grid driver = webdriver.Remote( command_executor='http://<hub-ip>:4444/wd/hub', desired_capabilities=capabilities ) # Ejemplo de prueba driver.get("http://www.example.com") print(driver.title) driver.quit()
Ejercicio Práctico
Ejercicio: Configura un Selenium Grid con un hub y dos nodos, uno ejecutando Chrome y otro Firefox. Ejecuta una prueba simple que verifique el título de una página web en ambos navegadores.
Solución:
- Configura el hub y los nodos como se describe anteriormente.
- Usa el script de ejemplo para conectarte al hub y especifica las capacidades para Chrome y Firefox.
- Ejecuta la prueba y verifica que se ejecuta en ambos navegadores.
Conclusión
En esta sección, aprendiste a configurar Selenium Grid para ejecutar pruebas en paralelo en múltiples navegadores y máquinas. Esta capacidad es crucial para mejorar la eficiencia de las pruebas y asegurar que tu aplicación funcione correctamente en diferentes entornos. En el siguiente tema, exploraremos cómo ejecutar pruebas en paralelo de manera más detallada.
Automatización de Pruebas con Selenium
Módulo 1: Introducción a la Automatización de Pruebas
- ¿Qué es la Automatización de Pruebas?
- Beneficios de la Automatización de Pruebas
- Visión General de Selenium
- Configuración de Tu Entorno
Módulo 2: Comenzando con Selenium
- Introducción a Selenium WebDriver
- Instalación de Selenium WebDriver
- Primer Script de Selenium
- Entendiendo la Interfaz WebDriver
Módulo 3: Localización de Elementos Web
- Introducción a los Localizadores
- Uso de Localizadores ID y Name
- XPath y Selectores CSS
- Estrategias Avanzadas de Localización
Módulo 4: Interacción con Elementos Web
- Realizando Acciones en Elementos Web
- Manejo de Desplegables y Casillas de Verificación
- Trabajando con Alertas y Ventanas Emergentes
- Gestión de Ventanas del Navegador y Marcos
Módulo 5: Sincronización en Selenium
Módulo 6: Marcos de Pruebas y Selenium
- Introducción a TestNG
- Configuración de TestNG con Selenium
- Creación de Casos de Prueba TestNG
- Pruebas Basadas en Datos con TestNG
Módulo 7: Conceptos Avanzados de Selenium
- Manejo de Llamadas AJAX
- Trabajando con Cookies
- Captura de Capturas de Pantalla
- Ejecución de JavaScript con Selenium
Módulo 8: Selenium Grid y Pruebas en Paralelo
- Introducción a Selenium Grid
- Configuración de Selenium Grid
- Ejecución de Pruebas en Paralelo
- Pruebas en Múltiples Navegadores
Módulo 9: Integración Continua y Selenium
- Introducción a la Integración Continua
- Integración de Selenium con Jenkins
- Automatización de la Ejecución de Pruebas
- Reportes y Registro