Softtek Softtek
  • Nuestra experiencia
  • Nosotros
  • Insights
  • Blog
  • Sala de prensa
  • Trabaja con nosotros
  • Contáctanos
    • Softtek GenAI
    • FRIDA AI for Software Engineering
    • Transformación de Servicios TI
    • Transformación del Portafolio de Aplicaciones
    • Evolución Digital Acelerada
    • Nuestro Trabajo
    • Aerolíneas y Aeropuertos
    • Agronegocios
    • Alta Tecnología
    • Automotriz
    • Banca y Servicios Financieros
    • Bienes de Consumo
    • Deportes Profesionales
    • Farmacéutica y Belleza
    • Gobierno y Servicios Públicos
    • Industrial
    • Medios y Entretenimiento
    • Oil & Gas
    • Restaurantes y Hospitalidad
    • Retail
    • Salud
    • Seguros
    • Telecomunicaciones
    • Transporte y Logística
    • Utilities y Energía
    • Servicios de Aplicaciones
      • Desarrollo de Software
      • Servicios Agile
      • Ingeniería de Calidad
      • Gestión de Aplicaciones
      • Servicios de Aplicaciones
    • Nube y DevOps
      • AWS
      • Azure
      • Servicios en la Nube
      • Servicios de Infraestructura
      • Seguridad Digital
      • Agile DevOps
    • Data y Automatización
      • Datos e Inteligencia Artificial
      • Automatización Inteligente
    • Transformación de Servicios
      • Innovación Digital
      • Operaciones Inteligentes de Tecnología
      • SAP S/4HANA
      • Cadena de Suministro
    • Servicios de Plataforma
      • SAP
      • Microsoft
      • Salesforce
      • ServiceNow
      • Atlassian
      • BlueYonder
    • Habilitadores Digitales
    • Soluciones Digitales
      • Optimización Digital
      • Digital Sales Services
      • Solución de Data Masking
      • Optimización de TI
      • FRIDA
  • SOSTENIBILIDAD
  • ENGLISH
  • ESPAÑOL
  • PORTUGUÊS
  • 中文(简体)
Softtek Blog

Lanzando test distribuidos con Selenium Grid (parte I)

Autor
Author Sabrina Bozzi
Publicado el:
ene 30, 2019
Tiempo de lectura:
ene 2019
|
SHARE
Share on LinkedIn
Share on X
Share on Facebook
SHARE
Share on LinkedIn
Share on X
Share on Facebook

 

testing3

Nuestro compañero Antonio nos hablaba en este post sobre la importancia de las pruebas de regresión en las grandes empresas y hoy, junto a mi compañera Tere, queremos hablaros sobre otro gran aliado para nuestro propósito: Selenium Grid.

 “O te renuevas o mueres…Todo fluye; Todo cambia; Nada permanece”.

A todo el mundo nos suena esta frase tan famosa de Heráclito. Resulta curioso que un pensamiento filosófico, que ha permanecido desde el principio de los tiempos, perdure en este presente y vaya a perdurar en el resto de los tiempos.

Hoy en día, la tecnología se encuentra en un bucle infinito de renovación; en el que hardware y software van de la mano en este cambio. Desde el punto de vista de un ingeniero de pruebas, vemos constantemente este cambio. Las aplicaciones se actualizan, los navegadores se actualizan y nosotros, los testers, tenemos que actualizarnos día a día para que lo que funcionaba antes siga funcionando. Y aquí es donde entra nuestro nuevo amigo ya mencionado: Selenium Grid.

 

¿Qué nos aporta Selenium Grid?

Selenium Grid nos permite lanzar múltiples tests a través de diferentes navegadores, SO y máquinas en paralelo. Esto asegura que la aplicación que se está testeando tenga compatibilidad con un amplio rango de combinaciones de navegadores-SO, elevando de esta manera, a otro nivel, nuestras pruebas sobre la compatibilidad de la aplicación en cualquier entorno. Esto supone un antes y un después en cuanto a la calidad.

Selenium Grid nos va a permitir crear una red de máquinas conectadas, a las que llamaremos nodos, que estará controlada por un balanceador mediante el cual podremos ejecutar nuestro set de pruebas en los diferentes nodos de nuestra red. Cada uno de esos nodos puede combinar diferentes versiones de los navegadores y diferentes sistemas operativos. Esta combinación supone multitud de pruebas y, por lo tanto, mayor probabilidad de encontrar errores en nuestros aplicativos.

1

Por ejemplo, en el gráfico siguiente tenemos 5 instancias de pruebas repartidas en tres nodos; de esta manera podremos lanzar cinco tests de manera concurrente. Eso no significa que el número total de tests sea cinco: cuando un test acaba, la instancia que lo ejecutaba es liberada, pudiendo ejecutarse otro test en dicha instancia. Si quisiéramos ejecutar seis tests, Selenium Grid lanzaría los cinco primeros y esperaría a que se liberara una de las instancias para lanzar el sexto.

 

 seleniumHub

Herramientas y componentes

Selenium Grid es una herramienta para lanzar tests de Selenium de forma distribuida, que utiliza internamente Selenium Remote Control para ejecutar los test con distintos navegadores y plataformas. Selenium Grid funciona ejecutando un componente llamado Selenium Hub.

Selenium Hub: este componente recibe las órdenes de ejecución de los tests y coordina a múltiples servidores para ejecutar los test en los distintos nodos de nuestra red. Asegura que las peticiones de los tests se carguen balanceadamente y direcciona las peticiones de cada test al nodo apropiado.

Selenium Hub es escalable y es el único punto de entrada para los test.

Selenium Remote Control: este componente recibe las peticiones de cada test desde Selenium Hub y las redirecciona contra el sitio web usando el protocolo HTTP. Esto permite que nuestros test puedan ser políglotas y podamos usar cualquier lenguaje de programación que permita realizar peticiones HTTP.

En resumen, la ejecución de los tests se hace con Selenium Grid, éste ejecuta Selenium Hub, el cual controla los distintos servidores Selenium Remote Control, donde se encuentran los nodos de nuestra red (diferentes navegadores, sistemas operativos y sus respectivas versiones).

seleniumhub2

 

Selenium Grid provee la flexibilidad de ejecutar los tests en diferentes navegadores y diferentes SO al mismo tiempo.

Para arrancar Selenium Grid, en primer lugar, se deberá descargar e instalar Selenium Server. Podéis hacerlo aquí:  http://docs.seleniumhq.org/download/          

Tras descargar Selenium Grid, se debe setear una máquina como hub.

El cliente será nuestro PC así que, por medio de línea de comandos, debes posicionarte en la carpeta donde se encuentra en jar de Selenium Server recién descargado. A esta máquina le daremos el rol de hub con el siguiente comando (añadiendo el atributo -role hub).

java -jar nombre_del_jar.jar  -role hub

Ejemplo:   java –jar selenium-server-standalone.jar -role hub

Si el hub se lanza correctamente, en la pantalla de línea de comandos se debe mostrar un mensaje indicando “Selenium Grid hub is up and running”.

 text

 

Para verificar que el hub se encuentre levantado, se debe escribir en el navegador lo siguiente: http://localhost:4444/grid/console

  4

A continuación, se debe registrar una máquina como nodo. Esto es necesario para que el hub la pueda reconocer como "disponible" cuando se ejecuten los tests. En este caso, al atributo -role le indicaremos el valor "node"

java -jar nombre_del_jar.jar -role node -hub http://ip_de _la_maquina_donde_esta_el_hub_levantado:4444/grid/register -port 5555

En la pantalla de línea de comandos se debe mostrar un mensaje indicando “The node is registered to the hub and ready to use”.

  text2

 

Para verificar que el nodo se ha registrado correctamente, ejecuta en el navegador: http://localhost:4444/grid/console

 5

Se puede observar que se ha registrado el nodo al hub y tiene 5 instancias de Firefox, 1 de Safari y 5 de Chrome.

¡Y hasta aquí todo lo que necesitamos saber sobre Selenium Grid antes de pasar a la acción!

 

En el próximo capítulo, de nuevo junto a mi compañera Tere, enseñaremos cómo instalar, configurar y ejecutar un set de pruebas usando Selenium Grid... ¡¡No te lo pierdas!!

 

Related posts

businessmen
ene 14, 2019
Aseguradoras tradiciones y start-ups: ¿Competencia o cooperación?
unix
ene 10, 2019
Las empresas de la próxima generación
Digitalização um caminho sem volta
sep 26, 2018
CoPilot, el empleado artificial

Let’s stay in touch!

Get Insights from our experts delivered right to your inbox!

Follow us:
Softtek LinkedIn
Softtek Twitter
Softtek Facebook
Softtek Instagram
Softtek Instagram
Follow us:
Softtek LinkedIn
Softtek Twitter
Softtek Facebook
Softtek Instagram
Softtek Instagram

© Valores Corporativos Softtek S.A. de C.V. 2026.
privacy notice
legal disclaimer
code of ethics
our policies
webmaster@softtek.com