您的位置:首页 > Web前端 > Node.js

[Selenium]Grid模式下运行时打印出当前Case在哪台node机器上运行

2015-06-09 11:23 549 查看
当Case在本地运行成功,在Grid模式下运行失败时,我们需要在Grid模式下进行调试,同时登录远程的node去查看运行的情况。

Hub是随机将case分配到某台node上运行的,怎样知道当前的case是运行在哪台node上呢?

可以通过这段代码获取node的信息:

public void getComputerNameOfNode(WebDriver driver){
String hub = "SZAUTOTEST1";
int port = 4444;
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
CloseableHttpClient closeableHttpClient = httpClientBuilder.build();

String sessionUrl = "http://" + hub + ":" + port+ "/grid/api/testsession?session="+((RemoteWebDriver) driver).getSessionId();
HttpPost httpPost = new HttpPost(sessionUrl);
System.out.println("Http post request is : "+httpPost.getRequestLine());
try{
//Execute HTTP request
HttpResponse httpResponse = closeableHttpClient.execute(httpPost);
//Get HTTP response
HttpEntity entity = httpResponse.getEntity();
//Response status
System.out.println("HTTP status:" + httpResponse.getStatusLine());
//Check if response is null
if (entity != null) {
System.out.println("Content encoding:" + entity.getContentEncoding());
String jsonString = EntityUtils.toString(entity);
System.out.println("Response content:" + jsonString);
JSONObject jsonObject = JSONObject.fromObject(jsonString);
String proxyID=jsonObject.getString("proxyId");
String node = (proxyID.split("//")[1].split(":")[0]);
System.out.println("The case is running on this node :" + node);
}
}
catch(IOException e){
e.printStackTrace();
}
finally{
try{
closeableHttpClient.close();
}
catch(IOException e){
e.printStackTrace();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: