Selenium 2 Grid - Знание того, какой узел использует ваш тест - PullRequest
13 голосов
/ 01 августа 2011

Можно ли узнать, какой узел сетки селена назначен вашему тесту?Мои тесты должны общаться с другими службами на компьютере узла, чтобы выполнить конфигурации, которые не поддерживаются selenium.

Mark

Ответы [ 2 ]

8 голосов
/ 01 августа 2011

Как правило, вы не должны полагаться на знание того, на какой машине работает ваш тест. Сетка 2 предоставляет серию прослушивателей обратного вызова, которые вы можете реализовать для обеспечения конфигурации машины. Но, если вы действительно хотите увидеть, на каком узле выполняется тест, вы можете использовать один из вызовов API. Обе конечные точки можно найти на концентраторе:

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

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

Ни то, ни другое еще не задокументировано. Но если вы посмотрите на источник, просто посмотреть, как они работают. Вы хотите взглянуть на ProxyStatusServlet и TestSessionStatusServlet.

3 голосов
/ 20 февраля 2013
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]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...