当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(); } } }
时间: 2024-09-30 20:56:21