Selenium独立服务器

时间:2018-02-08 10:05:26

标签: selenium selenium-webdriver selenium-chromedriver selenium-rc selenium-server

我想在远程计算机上运行selenium测试用例。 这些是我遵循的步骤:

我在服务器机器上做的步骤:

  1. 我已经下载了selenium-server-standalone-3.9.1.jar + Chrome Driver&将其放在一个文件夹中,并将其添加到$ PATH环境变量。

  2. 我已使用终端中的java -jar selenium-server-standalone-3.9.1.jar -role hub启动了selenium服务器。

  3. 我在本地机器上做的步骤:

    1. 我已经安装了selenium-webdriver&硒 - 服务器 - 独立-3.9.1.jar

    2. 我使用selenium webdriver编写了一个示例测试用例。

    3. 我在终端使用命令java -jar selenium-server-standalone-3.9.1.ja-role node -hub http://172.24.111.70:4444/grid/register启动了一个节点。节点已连接到集线器。

    4. 我在终端中运行命令node test.js。我希望在远程机器上打开chrome实例。但是它在本地机器上运行。

    5. 截图: 轮毂:(远程)    Terminal Remote Machine 节点:(本地) Terminal in Local Machine

      你能解释一下我在这里犯过的错误吗?我理解这个概念错了吗?

2 个答案:

答案 0 :(得分:0)

将在不是集线器的节点上创建将运行测试的Web浏览器实例。集线器是如何注册多个节点,以便您可以在不同的计算机/节点之间分配负载。据我所知,您在远程计算机上有一个连接本地节点的集线器。

我认为您想要的是在远程计算机上运行节点,注册到同一台计算机上的集线器(您可能必须在注册节点时将集线器的IP地址更改为localhost)。

答案 1 :(得分:0)

所以,问题是您希望测试在远程计算机上运行,​​但它们是在本地运行的吗?

从它的声音中你已经正确完成了所有设置,并且Hub / Nodes应该正常工作。您需要做的就是从本地计算机运行节点,而不是从远程计算机运行它。您只需要将Hub视为主管,他将工作交给节点(他们的员工)来完成。 Hub本身不运行任何测试,它只是将数据发送到节点并在多个节点之间进行负载平衡。

我们有6台远程机器。机器1具有集线器和节点,另外5个具有节点。在我们的项目中,我们指向Hub,所以当测试运行时,它们会被发送到那里。中心完成剩下的工作(取决于nodecfg文件和你在那里的设置)