2011-08-01 52 views

回答

8

一般來說,你不應該依賴知道您的測試運行在什麼機器。 Grid 2提供了一系列可以實現的回調監聽器來提供機器配置。但是,如果您確實想查看正在運行測試的節點,則可以使用其中一個API調用。兩個端點可在輪轂上找到:

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

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

他們都不是尚未記錄在案。但是,如果您查看源代碼,可以直接瞭解它們的工作原理。你想看看ProxyStatusServlet和TestSessionStatusServlet。

+0

謝謝你nirvdrum。我會看看代碼。你提到的回調監聽器有沒有記錄在任何機會? –

+0

不幸的是,還沒有。但是,如果您查看org.openqa.grid.internal.listeners包中的類的JavaDocs,則應該可以繼續。網格也在內部使用這些偵聽器來執行其大部分工作,因此您可以查看具體的實現。任何幫助你可以提供的文檔也將不勝感激:-) – nirvdrum

+0

我十分忙,直到十月初,但很樂意在此之後提供幫助。 –

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]); 
相關問題