Подтвердить что ты не робот

Selenium 2 Grid - Зная, какой node ваш тест использует

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

Марк

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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