我在 Grid Hub 下执行测试,3 个节点在 3 台远程计算机上运行。在我的日志中,我可以看到所有这些节点以随机顺序发布的消息。为了分析日志,我必须按计算机名称对其进行排序。我以以下方式尝试过(Java):
System.getenv().get("COMPUTERNAME")
但是每次它都会返回运行 Hub 的计算机的名称。
我在 Grid Hub 下执行测试,3 个节点在 3 台远程计算机上运行。在我的日志中,我可以看到所有这些节点以随机顺序发布的消息。为了分析日志,我必须按计算机名称对其进行排序。我以以下方式尝试过(Java):
System.getenv().get("COMPUTERNAME")
但是每次它都会返回运行 Hub 的计算机的名称。
由于您正在从集线器机器运行网格(可能还有 Jenkins/eclipse),因此 system.getenv() 将从集线器机器而不是节点机器返回信息。
使用 Selenium Grid 2,获取节点名称非常简单,请按照下列步骤操作:
- 从您的网络驱动程序获取会话 ID。
Webdriver.getSessionId();
转到以下网址。
替换
gridIP
为您的 Grid 集线器机器的 IP 或主机名。替换
mySessionId
为您从上述步骤 1 中获得的会话 ID。
http://gridIP:4444/grid/api/testsession?session=mySessionId
从 JSON 响应中,您可以从 proxyId 字段中找到 IP 和端口号。
下面的示例 JSON 响应(请参阅最后的 proxyId):
{"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"}
- 这是执行当前测试的 IP 地址。
"proxyId":"http://10.10.9.3:7777"