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
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
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.
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 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.