我在Grid Hub下执行测试,3个节点在3台远程计算机上运行。在我的日志中,我可以看到从所有这些节点发布的随机顺序的消息。为了分析日志,我必须按计算机名称对其进行排序。 我按照以下方式尝试了它(Java):
System.getenv().get("COMPUTERNAME")
但每次返回Hub正在运行的计算机的名称。
答案 0 :(得分:2)
由于您是在集线器计算机上运行网格(可能还有詹金斯/日食),因此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"