Selenium Grid:如何获取执行当前测试的节点名称(计算机名称或IP地址)

时间:2012-07-27 15:53:48

标签: java selenium-grid

我在Grid Hub下执行测试,3个节点在3台远程计算机上运行。在我的日志中,我可以看到从所有这些节点发布的随机顺序的消息。为了分析日志,我必须按计算机名称对其进行排序。 我按照以下方式尝试了它(Java):

System.getenv().get("COMPUTERNAME")

但每次返回Hub正在运行的计算机的名称。

1 个答案:

答案 0 :(得分:2)

由于您是在集线器计算机上运行网格(可能还有詹金斯/日食),因此system.getenv()将从集线器计算机而不是节点计算机返回信息。

对于Selenium Grid 2,获取节点名称非常简单,请遵循以下步骤:

  
      
  1. 从您的网络驱动程序获取会话ID。
  2.   
Webdriver.getSessionId();
  
      
  1. 转到下面的网址。

         

    gridIP替换为Grid的集线器计算机的IP或主机名。

         

    mySessionId替换为您从上述步骤1获得的会话ID。

  2.   
http://gridIP:4444/grid/api/testsession?session=mySessionId
  
      
  1. 从JSON响应中,您可以从proxyId字段中找到IP和端口号。

         

    下面的示例JSON响应(请参阅最后的proxyId):

  2.   
{"msg":"slot found !","success":true,"session":"xd1215w5-sw53-4bcc-qwa6-7e1214dd6542","internalKey":"q13b2q5x-a21s-5ggt-b6aw-1w1qzr5k0672","inactivityTime":78,"proxyId":"http://10.10.9.3:7777"}
  
      
  1. 这是执行/执行当前测试的IP地址。
  2.   
"proxyId":"http://10.10.9.3:7777"