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.

  1. 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

  1. Configuración del Hub

Para configurar un hub, sigue estos pasos:

  1. Descargar Selenium Server: Asegúrate de tener la última versión de Selenium Server. Puedes descargarla desde el sitio oficial de Selenium.

  2. 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.

  3. 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.

  1. Configuración de los Nodos

Para configurar un nodo, sigue estos pasos:

  1. 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.

  2. 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
    

  1. 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:

  1. Configura el hub y los nodos como se describe anteriormente.
  2. Usa el script de ejemplo para conectarte al hub y especifica las capacidades para Chrome y Firefox.
  3. 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

Módulo 2: Comenzando con Selenium

Módulo 3: Localización de Elementos Web

Módulo 4: Interacción con Elementos Web

Módulo 5: Sincronización en Selenium

Módulo 6: Marcos de Pruebas y Selenium

Módulo 7: Conceptos Avanzados de Selenium

Módulo 8: Selenium Grid y Pruebas en Paralelo

Módulo 9: Integración Continua y Selenium

Módulo 10: Mejores Prácticas y Solución de Problemas

© Copyright 2024. Todos los derechos reservados