Selenium Grid2 - 远程节点未连接到HUB

时间:2011-12-30 18:35:45

标签: selenium selenium-rc selenium-webdriver selenium-grid

我当前的设置是我在Windows机器上运行作为集线器的selenium RC(假设机器名称是machine.name.com)。 我使用以下命令启动它

java -jar selenium-server2.15.jar -role hub -port 5555

我有一个在同一台机器上运行的selenium节点,它注册到上面的节点。 我使用以下命令启动节点

java -jar selenium-server2.15.jar -role node -port 5554 -hub http://machine.name.com:5555/grid/register

此节点已成功注册,我也可以运行此节点的测试。

现在我有另一台机器(一台LINUX - 让我们假设这台机器的IP地址是10.123.123.123),表格我希望在windows(machine.name.com)机器上运行另一个注册到集线器的节点在5555号港口。 我使用以下命令启动节点。

java -jar selenium-server2.15.jar -role node -port 5572 -hub http://machine.name.com:5555/grid/register -browser browserName=chrome,platform=LINUX,maxInstances=5

问题是该节点没有被HUB注册。

我确实知道Hub和Node在我点击时已经检测到对方的事实 浏览器上显示http://machine.name.com:5555/console两个节点。 但是Linux机器旁边有一条错误消息“正在聆听http://10.123.123.123:5572(目前无法联系)

并且不能从该节点运行硒测试。

我在seleniumgroups HERE上读到,远程节点也必须定义-hubHost键值对。 所以我也尝试了以下命令,但没有成功

java -jar selenium-server2.15.jar -role node -port 5572 -hub http://machine.name.com:5555/grid/register -browser browserName=chrome,platform=LINUX, maxInstances=5 -hubHost "machine.name.com"

但是这也没有注册节点。

请注意,linux机器上的控制台上没有抛出任何错误。 所有显示的是 -

13:20:55.891 INFO - starting auto register thread. Will try to register every 5000ms
13:20:55.891 INFO - Registering the node to hub :http://machine.name.com:5555/grid/register
13:23:06.860 INFO - Registering the node to hub :http://machine.name.com:5555/grid/register
13:25:17.678 INFO - Registering the node to hub :http://machine.name.com:5555/grid/register
13:27:28.496 INFO - Registering the node to hub :http://machine.name.com:5555/grid/register
13:29:39.311 INFO - Registering the node to hub :http://machine.name.com:5555/grid/register

在Windows机器上运行集线器的控制台上没有抛出任何错误。

防火墙被适当地打孔,并通过telneting进行检查。

有了这一切,我相信我已经做了一些根本错误的事情,有人可以帮助我!!!!!

4 个答案:

答案 0 :(得分:11)

感谢大家帮忙,但问题是因为我的节点服务器的IP地址不可路由。 所以我为节点服务器创建了一个主机条目(DNS条目)。 并添加了另一个参数-host

所以命令现在看起来像

java -jar selenium-server2.15.jar -role node -port 5572 -hub http://machine.name.com:5555/grid/register -browser browserName=chrome,platform=LINUX, maxInstances=5 -hubHost "machine.name.com" -host "nodemachine.name.com"

再次感谢所有人。

答案 1 :(得分:0)

对我而言,似乎你正确地做到了。启动节点时是否尝试过-debug标志?也许你会在那里找到一些东西。

你可能想要browserName = googlechrome而不是browserName = chrome

答案 2 :(得分:0)

当我在VPN上时,我在本地计算机上托管节点和集线器时遇到了类似的问题。通过使用参数-host和-port

启动集线器和节点,我能够解决这个问题

对于启动集线器,命令看起来像这样

java -jar selenium-server-standalone-2.32.0.jar -role hub -host <hubipaddress> -port 4444

对于启动节点,命令看起来像这样

java -jar selenium-server-standalone-2.32.0.jar -role node -host <nodeipaddress> -port 5555 -hub http://<hubipaddress>:4444/grid/register

在我的情况下,hubipaddress和nodeipaddress是相同的,它们是通过VPN分配给我的IP地址

答案 3 :(得分:0)

如果您使用的是虚拟机,则需要检查熵。 Selenium使用urandom,如果你没有足够的熵,那么节点需要1小时+(如果有的话)。

在CentOS(及其他发行版)上安装:

yum install haveged
chkconfig haveged on
systemctl start haveged

重启两个服务,Selenium应该正常启动。