13 Stimmen

Selenium 2 Grid - Wissen, welchen Knoten Ihr Test verwendet

Ist es möglich zu wissen, welchen Knoten der Selenium Grid Hub Ihrem Test zugewiesen hat? Meine Tests müssen mit anderen Diensten auf dem Knotenrechner kommunizieren, um Konfigurationen durchzuführen, die von Selenium nicht unterstützt werden.

Mark

8voto

nirvdrum Punkte 2309

Im Allgemeinen sollten Sie sich nicht darauf verlassen, dass Sie wissen, auf welchem Rechner Ihr Test läuft. Grid 2 bietet eine Reihe von Callback-Listenern, die Sie implementieren können, um die Maschinenkonfiguration bereitzustellen. Wenn Sie aber wirklich wissen wollen, auf welchem Knoten ein Test läuft, können Sie einen der API-Aufrufe verwenden. Beide Endpunkte sind im Hub zu finden:

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

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

Beide sind noch nicht dokumentiert. Aber wenn Sie sich den Quelltext ansehen, können Sie leicht erkennen, wie sie funktionieren. Sie sollten sich das ProxyStatusServlet und das TestSessionStatusServlet ansehen.

3voto

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]);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X