我想在远程计算机上运行selenium测试用例。 这些是我遵循的步骤:
我在服务器机器上做的步骤:
我已经下载了selenium-server-standalone-3.9.1.jar + Chrome Driver&将其放在一个文件夹中,并将其添加到$ PATH环境变量。
我已使用终端中的java -jar selenium-server-standalone-3.9.1.jar -role hub
启动了selenium服务器。
我在本地机器上做的步骤:
我已经安装了selenium-webdriver&硒 - 服务器 - 独立-3.9.1.jar
我使用selenium webdriver编写了一个示例测试用例。
我在终端使用命令java -jar selenium-server-standalone-3.9.1.ja-role node -hub http://172.24.111.70:4444/grid/register
启动了一个节点。节点已连接到集线器。
我在终端中运行命令node test.js
。我希望在远程机器上打开chrome实例。但是它在本地机器上运行。
你能解释一下我在这里犯过的错误吗?我理解这个概念错了吗?
答案 0 :(得分:0)
将在不是集线器的节点上创建将运行测试的Web浏览器实例。集线器是如何注册多个节点,以便您可以在不同的计算机/节点之间分配负载。据我所知,您在远程计算机上有一个连接本地节点的集线器。
我认为您想要的是在远程计算机上运行节点,注册到同一台计算机上的集线器(您可能必须在注册节点时将集线器的IP地址更改为localhost)。
答案 1 :(得分:0)
所以,问题是您希望测试在远程计算机上运行,但它们是在本地运行的吗?
从它的声音中你已经正确完成了所有设置,并且Hub / Nodes应该正常工作。您需要做的就是从本地计算机运行节点,而不是从远程计算机运行它。您只需要将Hub视为主管,他将工作交给节点(他们的员工)来完成。 Hub本身不运行任何测试,它只是将数据发送到节点并在多个节点之间进行负载平衡。
我们有6台远程机器。机器1具有集线器和节点,另外5个具有节点。在我们的项目中,我们指向Hub,所以当测试运行时,它们会被发送到那里。中心完成剩下的工作(取决于nodecfg文件和你在那里的设置)