【问题标题】:Selenium Grid: How to get node name (computer name or IP address) where current test is executedSelenium Grid:如何获取执行当前测试的节点名称(计算机名称或 IP 地址)
【发布时间】:2012-07-27 15:53:48
【问题描述】:

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

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

但每次它都会返回运行 Hub 的计算机的名称。

【问题讨论】:

    标签: java selenium-grid


    【解决方案1】:

    由于您从 Hub 机器运行网格(可能还有 Jenkins/eclipse),system.getenv() 将返回来自 Hub 机器而不是节点机器的信息。

    使用 Selenium Grid 2,获取节点名称非常简单,请按照下列步骤操作:

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

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

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

    http://gridIP:4444/grid/api/testsession?session=mySessionId
    
    1. 从 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"}
    
    1. 这是执行当前测试的 IP 地址。
    "proxyId":"http://10.10.9.3:7777"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-14
      • 2017-10-25
      • 2014-08-08
      • 1970-01-01
      • 1970-01-01
      • 2011-02-18
      • 1970-01-01
      • 2021-04-14
      相关资源
      最近更新 更多