2011-08-01 11 views

Respuesta

8

En general, usted no debe confiar en saber qué máquina de la prueba se está ejecutando. Grid 2 proporciona una serie de escuchas de devolución de llamada que puede implementar para proporcionar la configuración de la máquina. Pero, si realmente desea ver en qué nodo se está ejecutando una prueba, podría usar una de las llamadas API. Ambos extremos se pueden encontrar en el cubo:

http://localhost:4444/grid/api/proxy

http://localhost:4444/grid/api/testsession

Ni se documentan todavía. Pero si ves la fuente, es fácil ver cómo funcionan. Desea ver ProxyStatusServlet y TestSessionStatusServlet.

+0

Gracias nirvdrum. Echaré un vistazo al código. ¿Están los oyentes de devolución de llamada que mencionas documentados en alguna parte por casualidad? –

+0

Desafortunadamente, todavía no. Pero si mira los JavaDocs para las clases en el paquete org.openqa.grid.internal.listeners, debería poder continuar. Grid también usa internamente estos oyentes para realizar gran parte de su trabajo, por lo que hay implementaciones concretas que puede ver. También te agradecería cualquier ayuda que puedas proporcionar con los documentos :-) – nirvdrum

+0

Estoy extremadamente ocupado hasta principios de octubre, pero me encantaría ayudarte después de eso. –

3
String hub = "grid_server_host"; //IP or hostname of GRID 

int port = 4444; // port no. 

HttpHost host = new HttpHost(hub,port); 

DefaultHttpClient client = new DefaultHttpClient(); 

String url = host + "/grid/api/testsession?session="; 

URL session = new URL(url + ((RemoteWebDriver) webdriver).getSessionId()); 

BasicHttpEntityEnclosingRequest req; 

req = new BasicHttpEntityEnclosingRequest("POST", session.toExternalForm()); 

org.apache.http.HttpResponse response = client.execute(host,req); 

JSONObject object = new JSONObject(EntityUtils.toString(response.getEntity())); 

String proxyID = (String) object.get("proxyId"); 

String node = (proxyID.split("//")[1].split(":")[0]); 
Cuestiones relacionadas