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
- Hub: El servidor central que controla l'execució de les proves. Rep les sol·licituds de les proves i les distribueix als nodes disponibles.
- 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.
- Descarrega el Selenium Server des del lloc oficial de Selenium.
- Guarda el fitxer
.jar
en una ubicació accessible.
Pas 2: Iniciar el Hub
Executa el següent comandament per iniciar el 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:
- 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:
- Configura el hub seguint els passos anteriors.
- Configura un node i connecta'l al hub.
- Escriu un script de prova simple que obri una pàgina web en Chrome i Firefox.
- 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
- Què és l'Automatització de Proves?
- Beneficis de l'Automatització de Proves
- Visió General de Selenium
- Configuració del Teu Entorn
Mòdul 2: Començant amb Selenium
- Introducció a Selenium WebDriver
- Instal·lació de Selenium WebDriver
- Primer Script de Selenium
- Comprensió de la Interfície WebDriver
Mòdul 3: Localització d'Elements Web
- Introducció als Localitzadors
- Ús de Localitzadors ID i Nom
- XPath i Selectors CSS
- Estratègies Avançades de Localització
Mòdul 4: Interacció amb Elements Web
- Realització d'Accions sobre Elements Web
- Gestió de Desplegables i Caixes de Selecció
- Treballant amb Alertes i Pop-ups
- Gestió de Finestres del Navegador i Frames
Mòdul 5: Sincronització en Selenium
Mòdul 6: Marc de Proves i Selenium
- Introducció a TestNG
- Configuració de TestNG amb Selenium
- Creació de Casos de Prova TestNG
- Proves Basades en Dades amb TestNG
Mòdul 7: Conceptes Avançats de Selenium
- Gestió de Trucades AJAX
- Treballant amb Cookies
- Captura de Captures de Pantalla
- Execució de JavaScript amb Selenium
Mòdul 8: Selenium Grid i Proves en Paral·lel
- Introducció a Selenium Grid
- Configuració de Selenium Grid
- Execució de Proves en Paral·lel
- Proves Multinavegador
Mòdul 9: Integració Contínua i Selenium
- Introducció a la Integració Contínua
- Integració de Selenium amb Jenkins
- Automatització de l'Execució de Proves
- Informes i Registre