Selenium Grid: cómo obtener el nombre del nodo (nombre de la computadora o dirección IP) donde se ejecuta la prueba actual

Ejecuto mis pruebas en Grid Hub y 3 nodos se ejecutan en 3 computadoras remotas. En mi registro puedo ver los mensajes publicados en orden aleatorio desde todos estos nodos. Para analizar los registros, tengo que ordenarlos por nombre de computadora. Lo probé de la siguiente manera (Java):

System.getenv().get("COMPUTERNAME")

Pero cada vez que devuelve el nombre de la computadora donde se está ejecutando Hub.

preguntado el 27 de julio de 12 a las 16:07

1 Respuestas

Dado que está ejecutando la cuadrícula (y potencialmente Jenkins/eclipse) desde la máquina del concentrador, system.getenv() devolverá información de la máquina del concentrador y no de las máquinas del nodo.

Con Selenium Grid 2, es bastante simple obtener el nombre del nodo, siga estos pasos:

  1. Obtenga la identificación de la sesión de su controlador web.
Webdriver.getSessionId();
  1. Ir a la siguiente URL.

    Reemplaza gridIP con IP o nombre de host de la máquina central de su Grid.

    Reemplaza mySessionId con el ID de sesión que obtuvo del paso 1 anterior.

http://gridIP:4444/grid/api/testsession?session=mySessionId
  1. Desde la respuesta JSON, puede encontrar la IP y el número de puerto del campo proxyId.

    Ejemplo de respuesta JSON a continuación (ver proxyId al final):

{"msg":"slot found !","success":true,"session":"xd1215w5-sw53-4bcc-qwa6-7e1214dd6542","internalKey":"q13b2q5x-a21s-5ggt-b6aw-1w1qzr5k0672","inactivityTime":78,"proxyId":"http://10.10.9.3:7777"}
  1. Aquí está la dirección IP donde se ejecutó/se ejecutó la prueba actual.
"proxyId":"http://10.10.9.3:7777"

Respondido 22 Oct 18, 19:10

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.