我们可以 运行 在来自同时连接在同一网络中的 2 台不同机器的两个节点中使用 Selenium GRID 2 进行 Selenium 测试吗

Can we run Selenium Test using Selenium GRID 2 in two nodes from 2 different machine connected in the same network at the same time

我想 运行 使用 SELENIUM GRID2 在同一网络上的 2 台不同机器(2 个不同节点)中进行测试。

当我运行测试时,测试运行在一个节点中(第一个注册到集线器的节点)

在 - 推出了 GRID Hub http://11.111.111.11:4444

从同一网络中的 2 台不同机器注册了 2 个节点。

节点 1:

xxxx://11.111.111.11:4444/grid/register -port 5557

节点 2:

xxxx://11.111.111.11:4444/grid/register -port 5558

最后 passed/provided 下面提到的代码中的集线器 URL

String hubURL = "xxxx://11.111.111.11:4444/wd/hub";

driver = new RemoteWebDriver(new URL(hubURL), caps);

但测试是 运行在一个节点中(第一个注册到集线器的节点)

测试未在 2 个节点中获得 executed/running

请帮我解决这个问题

将测试分配给节点是网格的一个属性。想要 运行 仅测试特定节点会得到什么?

也就是说,您基本上可以使用以下选项将测试路由到特定节点

  1. 当您启动节点时,您基本上将其 maxSession 设置为 1。这样一个节点将一次只提供一个测试。这是您需要通过 nodeConfig 参数在节点级别传递的配置,将 selenium 节点指向 JSON 配置文件。更多详情请参考我的博客 here
  2. 第二种方法有点复杂,需要您进行一些自定义。您需要使用自定义功能匹配器,您需要将其注入网格,然后通过所需的功能对象传入自定义功能,网格会一直将您的测试路由到该特定节点。它是一种为测试创建节点亲和力的方法,当您尝试调试仅发生在特定节点上的故障时特别有用。您可以在我的博客 post here.
  3. 中阅读有关使用自定义功能的更多信息