En aquest tema, aprendrem com configurar Selenium Grid per executar proves en paral·lel a través de múltiples navegadors i plataformes. Selenium Grid és una eina poderosa que permet distribuir l'execució de proves en diferents màquines, millorant així l'eficiència i la cobertura de les proves.

Què és Selenium Grid?

Selenium Grid és una part de la suite de Selenium que permet executar proves en múltiples navegadors, sistemes operatius i màquines simultàniament. Això és especialment útil per a proves multinavegador i per reduir el temps total d'execució de les proves.

Components de Selenium Grid

  1. Hub: El servidor central que controla l'execució de les proves. Rep les sol·licituds de les proves i les distribueix als nodes disponibles.
  2. Node: Les màquines que executen les proves. Cada node pot estar configurat per executar proves en diferents navegadors i sistemes operatius.

Configuració del Hub

Pas 1: Instal·lació de Selenium Server

Per configurar el hub, necessitem el Selenium Server. Assegura't de tenir Java instal·lat al teu sistema, ja que Selenium Server és una aplicació Java.

  1. Descarrega el Selenium Server des del lloc oficial de Selenium.
  2. Guarda el fitxer .jar en una ubicació accessible.

Pas 2: Iniciar el Hub

Executa el següent comandament per iniciar el hub:

java -jar selenium-server-standalone-x.xx.x.jar -role hub
  • Assegura't de substituir x.xx.x per la versió del Selenium Server que has descarregat.
  • Aquest comandament iniciarà el hub a la URL http://localhost:4444/grid/console.

Configuració dels Nodes

Pas 1: Preparació del Node

Cada node també necessita el Selenium Server. Descarrega el mateix fitxer .jar que vas utilitzar per al hub.

Pas 2: Iniciar el Node

Executa el següent comandament per connectar un node al hub:

java -jar selenium-server-standalone-x.xx.x.jar -role node -hub http://localhost:4444/grid/register
  • Aquest comandament connectarà el node al hub que s'executa a http://localhost:4444.
  • Pots especificar opcions addicionals per definir quins navegadors i quantes instàncies de cada navegador el node pot executar.

Exemple de Configuració

Suposem que volem configurar un node que pugui executar proves en Chrome i Firefox. Aquí tens un exemple de comandament per iniciar el node amb aquestes capacitats:

java -jar selenium-server-standalone-x.xx.x.jar -role node -hub http://localhost:4444/grid/register -browser browserName=chrome,maxInstances=5 -browser browserName=firefox,maxInstances=5
  • maxInstances defineix quantes instàncies de cada navegador es poden executar simultàniament en aquest node.

Exercici Pràctic

Objectiu: Configurar un hub i un node en la teva màquina local i executar una prova simple en paral·lel.

Passos:

  1. Configura el hub seguint els passos anteriors.
  2. Configura un node i connecta'l al hub.
  3. Escriu un script de prova simple que obri una pàgina web en Chrome i Firefox.
  4. Executa la prova i observa com es distribueix entre els navegadors.

Solució:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

import java.net.MalformedURLException;
import java.net.URL;

public class SeleniumGridTest {
    public static void main(String[] args) throws MalformedURLException {
        // URL del hub
        String hubURL = "http://localhost:4444/wd/hub";

        // Configuració per a Chrome
        DesiredCapabilities chromeCapabilities = DesiredCapabilities.chrome();
        WebDriver chromeDriver = new RemoteWebDriver(new URL(hubURL), chromeCapabilities);
        chromeDriver.get("http://example.com");
        System.out.println("Títol de la pàgina en Chrome: " + chromeDriver.getTitle());
        chromeDriver.quit();

        // Configuració per a Firefox
        DesiredCapabilities firefoxCapabilities = DesiredCapabilities.firefox();
        WebDriver firefoxDriver = new RemoteWebDriver(new URL(hubURL), firefoxCapabilities);
        firefoxDriver.get("http://example.com");
        System.out.println("Títol de la pàgina en Firefox: " + firefoxDriver.getTitle());
        firefoxDriver.quit();
    }
}

Conclusió

En aquesta secció, hem après a configurar Selenium Grid per executar proves en paral·lel a través de múltiples navegadors. Aquesta configuració és essencial per a equips que necessiten executar proves de manera eficient i en diferents entorns. En el següent tema, explorarem com executar proves en paral·lel utilitzant aquesta configuració.

Automatització de Proves amb Selenium

Mòdul 1: Introducció a l'Automatització de Proves

Mòdul 2: Començant amb Selenium

Mòdul 3: Localització d'Elements Web

Mòdul 4: Interacció amb Elements Web

Mòdul 5: Sincronització en Selenium

Mòdul 6: Marc de Proves i Selenium

Mòdul 7: Conceptes Avançats de Selenium

Mòdul 8: Selenium Grid i Proves en Paral·lel

Mòdul 9: Integració Contínua i Selenium

Mòdul 10: Millors Pràctiques i Resolució de Problemes

© Copyright 2024. Tots els drets reservats