Selenium Tutorial de Grid: Configuración de un Hub y un Nodo
ā” Resumen inteligente
Selenium Grid ejecuta mĆŗltiples pruebas en paralelo en distintos navegadores, sistemas operativos y mĆ”quinas mediante una arquitectura de concentrador y nodos. El concentrador carga las pruebas en una mĆ”quina, mientras que los nodos las ejecutan en otras, lo que permite una cobertura mĆ”s rĆ”pida entre navegadores mediante la configuración por lĆnea de comandos o JSON.

¿Qué es Selenium Rejilla?
Selenium CuadrĆcula Es una parte del Selenium Suite que se especializa en ejecutar mĆŗltiples pruebas en diferentes navegadores, sistemas operativos y mĆ”quinas en paralelo. Se logra enrutando los comandos de instancias remotas del navegador donde un servidor actĆŗa como concentrador. Un usuario necesita configurar el servidor remoto para poder ejecutar las pruebas.
Selenium Grid tiene 2 versiones: el Grid 1 mƔs antiguo y el Grid 2 mƔs nuevo. Solo nos centraremos en el Grid 2 porque el Grid 1 estƔ quedando obsoleto gradualmente. Selenium Equipo.
Selenium CuadrĆcula Architectura
Selenium Grid tiene un centro y un nodo Architectura.

Circuladores
- El centro es el punto central donde carga sus pruebas.
- Sólo deberĆa haber un centro en una cuadrĆcula.
- El concentrador se inicia sólo en una única mÔquina, por ejemplo, una computadora cuyo sistema operativo es Windows 7 y cuyo navegador es IE.
- La mƔquina que contiene el centro es donde se ejecutarƔn las pruebas, pero verƔ que el navegador se automatiza en el nodo.
Nodes
- Los nodos son los Selenium instancias que ejecutarÔn las pruebas que cargó en el hub.
- Puede haber uno o mĆ”s nodos en una cuadrĆcula.
- Los nodos se pueden iniciar en varias mƔquinas con diferentes plataformas y navegadores.
- No es necesario que las mƔquinas que ejecutan los nodos sean de la misma plataforma que la del centro.
Selenium Grid utiliza un concepto de nodo concentrador en el que solo se ejecuta la prueba en una única mÔquina llamada Placa del Motor, pero la ejecución la realizarÔn diferentes mÔquinas llamadas nodos.
Como instalar Selenium Rejilla?
En esta sección, utilizarÔ 2 mÔquinas. La primera mÔquina serÔ el sistema que ejecutarÔ el concentrador, mientras que la otra mÔquina ejecutarÔ un nodo. Para simplificar, llamemos a la mÔquina donde se ejecuta el concentrador como "MÔquina A", mientras que la mÔquina donde se ejecuta el nodo serÔ "MÔquina B". También es importante tener en cuenta sus direcciones IP. Digamos que la mÔquina A tiene una dirección IP de 192.168.1.3 mientras que la mÔquina B tiene una IP de 192.168.1.4.
Paso 1) Descargue nuestra Selenium Servidor de aquĆ.
Paso 2) Puedes colocar el Selenium Archivo .jar del servidor en cualquier lugar de su disco duro. Pero para los fines de este tutorial, colóquelo en la unidad C de la MĆ”quina A y de la MĆ”quina B. DespuĆ©s de hacer esto, habrĆ” terminado de instalar. Selenium CuadrĆcula. Los siguientes pasos iniciarĆ”n el concentrador y el nodo.
Paso 3)
- Ahora vamos a lanzar un centro. Vaya a la MĆ”quina A. Usando el sĆmbolo del sistema, navegue hasta la raĆz de la unidad C de la MĆ”quina A, porque ese es el directorio donde colocamos el Selenium Server.
- En el sĆmbolo del sistema, escriba java -jar selenium-servidor-independiente-2.30.0.jar -role hub
- El centro deberĆa iniciarse correctamente. Su sĆmbolo del sistema deberĆa verse similar a la imagen a continuación.
Paso 4) Otra forma de verificar si el concentrador se estƔ ejecutando es mediante un navegador. Selenium Grid, de forma predeterminada, utiliza el puerto 4444 de la mƔquina A para su interfaz web. Simplemente abra un navegador y vaya a http://localhost:4444/grid/console
AdemÔs, puede verificar si la MÔquina B puede acceder a la interfaz web del concentrador iniciando un navegador allà y yendo a donde "iporhostnameofmachineA" debe ser la dirección IP o el nombre de host de la mÔquina donde se ejecuta el concentrador. Dado que la dirección IP de la mÔquina A es 192.168.1.3, en el navegador de la mÔquina B debe escribir http://192.168.1.3:4444/grid/console
Paso 5)
- Ahora que el centro ya estĆ” configurado, lanzaremos un nodo. Vaya a la MĆ”quina B e inicie un sĆmbolo del sistema allĆ.
- Navegue hasta la raĆz de la Unidad C y escriba el siguiente código. Usamos la dirección IP 192.168.1.3 porque es allĆ donde se ejecuta el concentrador. TambiĆ©n utilizamos el puerto 5566, aunque puede elegir cualquier nĆŗmero de puerto libre que desee.
- NOTA: Ahora debe indicar la ruta al controlador Gecko si usa Firefox. Aquà hay un código actualizado que debe usarse.
java -Dwebdriver.gecko.driver="C:\geckodriver.exe" -jar selenium-server-standalone-3.4.0.jar -role webdriver -hub http://192.168.1.3:4444/grid/register -port 5566
- Cuando presiona Enter, su sĆmbolo del sistema deberĆa ser similar a la imagen a continuación.
Paso 6) Vaya a la Selenium Interfaz web Grid y actualice la pĆ”gina. DeberĆa ver algo como esto.
En este punto, ya has configurado una cuadrĆcula simple. Ahora estĆ” listo para ejecutar una prueba de forma remota en la MĆ”quina B.
CuƔndo usar Selenium Rejilla?
DeberĆas usar Selenium CuadrĆcula cuando desee realizar una o ambas de las siguientes acciones:
- Ejecute sus pruebas en diferentes navegadores, sistemas operativos y mÔquinas, todo al mismo tiempo. Esto asegurarÔ que la aplicación que estÔ Pruebas es totalmente compatible con una amplia gama de combinaciones de navegador y sistema operativo.
- Ahorre tiempo en la ejecución de sus suites de pruebas. Si configuras Selenium Grid para ejecutar, digamos, 4 pruebas a la vez, luego podrÔ terminar todo el conjunto aproximadamente 4 veces mÔs rÔpido.
CuadrĆcula 1.0 versus CuadrĆcula 2.0
A continuación se presentan las principales diferencias entre Selenium CuadrĆcula 1 y 2.
| CuadrĆcula 1 | CuadrĆcula 2 |
|---|---|
| Selenium Grid 1 tiene su propio control remoto diferente al Selenium Servidor RC. Son dos programas diferentes. | Selenium Grid 2 ahora viene incluido con el Selenium archivo jar del servidor |
| Necesitas instalar y configurar APACHE Ant primero antes de poder usar Grid 1. | No es necesario instalar Apache Ant en Grid 2. |
| solo puedo apoyar Selenium Comandos/scripts RC. | Puede soportar ambos Selenium Scripts RC y WebDriver. |
| Sólo puedes automatizar un navegador por mando a distancia. | Un control remoto puede automatizar hasta 5 navegadores. |
Selenium La cuadrĆcula se puede configurar de dos maneras diferentes; uno a travĆ©s de la lĆnea de comando y el otro a travĆ©s del archivo de configuración JSON.
DiseƱo de scripts de prueba que puedan ejecutarse en la red
Para diseƱar scripts de prueba que se ejecutarƔn en el grid, necesitamos usar Capacidades deseadas y conectar RemoteWebDriver objetos.
- Capacidades deseadas Se utiliza para establecer el tipo de cada navegador y OS que automatizaremos.
- RemoteWebDriver se utiliza para establecer contra quƩ nodo (o mƔquina) se ejecutarƔ nuestra prueba.
Para usar el Capacidades deseadas objeto, primero debes importar este paquete
Para usar el RemoteWebDriver objeto, debe importar estos paquetes.
Usando el objeto DesiredCapabilites
Vaya a la interfaz web de Grid y coloque el cursor sobre una imagen del navegador que desea automatizar. Toma nota de la plataforma, y conectar nombre del navegador mostrado por la información sobre herramientas.
En este caso, la plataforma es āXPā y el nombre del navegador es āFirefox."
Usaremos la plataforma y el nombre del navegador en nuestro WebDriver como se muestra a continuación (por supuesto, primero debe importar los paquetes necesarios).
Usando el objeto RemoteWebDriver
Importe los paquetes necesarios para RemoteWebDriver y luego pase el objeto DesiredCapabilities que creamos anteriormente como parƔmetro para el objeto RemoteWebDriver.
Ejecución de un caso de prueba de muestra en Grid
A continuación se muestra un WebDriver simple Prueba código que puedes crear en Eclipse en la MÔquina A. Una vez que lo ejecute, la automatización se realizarÔ en la MÔquina B.
import org.openqa.selenium.*; import org.openqa.selenium.remote.DesiredCapabilities; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.Assert; import org.testng.annotations.*; public class Grid_2 { WebDriver driver; String baseUrl, nodeURL; @BeforeTest public void setUpWthrows MalformedURLException { baseUrl = "http://newtours.demoaut.com/"; nodeURL = "http://192.168.1.4:5566/wd/hub"; DesiredCapabilities capability = DesiredCapabilities.firefox(); capability. setBrowserName("firefox"); capability. setPlatform(Platform.XP); driver = new RemoteWebDriver(new URL(nodeURL), capability); } @AfterTest public void afterTest() { driver.quit(); } @Test public void simpleTest() { driver.get(baseUr1); Assert.assertEquas("Welcome: Mercury Tours", driver.getTitle()); } }
La prueba deberĆa pasar.
![]() |
![]() |
Selenium configuración de la red usando el archivo JSON
JSON significa Javascript Notación de objetos. Es un formato estÔndar utilizado para el intercambio de datos entre el navegador y el servidor web. Selenium tiene un archivo de configuración JSON incorporado que se puede usar para configurar Selenium Grid.
A continuación se muestran los pasos para configurar Selenium Grid utilizando el archivo de configuración JSON.
Paso 1) Descargue el código para el archivo de configuración JSON usando la siguiente ruta
Aqui esta el codigo
{
"port": 4444,
"newSessionWaitTimeout": -1,
"servlets" : [],
"withoutServlets": [],
"custom": {},
"capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher",
"registryClass": "org.openqa.grid.internal.DefaultGridRegistry",
"throwOnCapabilityNotPresent": true,
"cleanUpCycle": 5000,
"role": "hub",
"debug": false,
"browserTimeout": 0,
"timeout": 1800
}
Paso 2) Copie y pegue el código en un editor de texto como el Bloc de notas con la extensión '.json'
Paso 3) Inicie el centro usando el siguiente comando usando el sĆmbolo del sistema
java -jar selenium-server-standalone-2.53.1.jar -role hub -hubConfig hubconfig.json
NOTA: Selenium El archivo jar independiente y el archivo json deben estar presentes en el mismo directorio.
Paso 4) AparecerÔ la siguiente pantalla que indica que el concentrador se configuró correctamente
Paso 5) Abra su navegador web e intente conectarse a la siguiente dirección: URL
http://192.168.43.223:4444/grid/console
NOTA: El URL puede variar de una mƔquina a otra. URL seguido de 'Los nodos deben registrarse en' en la pantalla anterior debe utilizarse.
Paso 6) AparecerĆ” la pantalla Grid Console, que indica que el concentrador estĆ” en funcionamiento.
Configurar NODOS usando JSON
Paso 1) Descargue el archivo de configuración del nodo de muestra proporcionado por Selenium utilizando lo siguiente URL
NOTA: SI ESTĆ UTILIZANDO SELENIUM 3.0 O SUPERIOR, DEBE UTILIZAR EL SIGUIENTE ARCHIVO JSON
Paso 2) Copie y pegue el código en un editor de texto como el Bloc de notas y guarde el archivo con la extensión ".json".
Paso 3)
Ejecute el siguiente comando en el sĆmbolo del sistema
Java-Dwebdriver.chrome.driver="chromedriver.exe" -Dwebdriver.ie.driver="IEDriverServer.exe" -Dwebdriver.gecko.driver="geckodriver.exe" -jar selenium-server-standalone-2.53.1.jar -role node -nodeConfig node1.json
NOTA: Antes de ejecutar el comando, asegúrese de que los controladores para cada uno de los navegadores se hayan descargado en el directorio de la mÔquina local.
Paso 4) La siguiente pantalla aparecerĆ” cuando se presione la tecla Intro.
Paso 5) Navegue a la consola de grid para verificar si los nodos se han configurado correctamente
Los navegadores se muestran en la consola de grid. Por lo tanto, podemos estar seguros de que los nodos estƔn configurados correctamente.
Casos de prueba de muestra activados Selenium CuadrĆcula:
package com.objectrepository.demo; import org.openqa.selenium.*; import org.openqa.selenium.remote.DesiredCapabilities; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.Assert; import org.testng.annotations.*; public class SeleniumGrid { WebDriver driver; String baseURL, nodeURL; @BeforeTest public void setUp() throws MalformedURLException { baseURL = "https://demo.guru99.com/test/guru99home/"; nodeURL = "http://192.168.43.223:5566/wd/hub"; DesiredCapabilities capability = DesiredCapabilities.chrome(); capability.setBrowserName("chrome"); capability.setPlatform(Platform.WIN10); driver = new RemoteWebDriver(new URL(nodeURL), capability); } @AfterTest public void afterTest() { driver.quit(); } @Test public void sampleTest() { driver.get(baseURL); if (driver.getPageSource().contains("MOBILE TESTING")) { Assert.assertTrue(true, "Mobile Testing Link Found"); } else { Assert.assertTrue(false, "Failed: Link not found"); } } }
El código anterior abre el navegador Chrome y navega a la URL especificado en la 'base'URL' variable. Verificó que se muestra un enlace con el nombre 'Pruebas móviles' en la pÔgina.
URL en el 'nodoURLLa variable ' puede modificarse para reflejar la dirección IP de la mÔquina remota. El resultado de la prueba puede verificarse en el valor predeterminado. TestNG informe generado







.png)






