2011-11-16 84 views
1

我已经通过阅读和理解关于Grid2的稀疏/分散的在线文档实现了Selenium Grid。 My current implementation是 -了解在EC2上运行的Selenium Grid2实现

webdriver的节点注册,并在EC2实例中运行

java -jar selenium-server-standalone-2.8.0.jar -role webdriver -hub http://EC2_PUBLIC_IP:5555/grid/register -port 5556 

中心注册,并在同一个EC2实例中运行

java -jar selenium-server-standalone-2.8.0.jar -role hub -hubhost EC2_PUBLIC_IP -port 5555 

我正在我的基于的webdriver TestNG进行来自我的本地机器上的Eclipse。驱动程序配置为 driver = new RemoteWebDriver(新URL(“http:// EC2_PUBLIC_IP:5556/wd/hub”),capability);

运行测试会在我的EC2实例上启动浏览器。

我现在还在找工作,可能是非常基本的,并希望他们的人的看法或认识的几个悬而未决的问题。我希望我的浏览器在运行有相应节点的计算机上启动。例如 - 运行webdriver + firefox节点的机器应该启动相应的测试。

  1. 如果我需要在不同的机器上设置Hub和Node,Grid2的实现如何工作?我认为,实现将是不同的,如果它是一个EC2Hub-LocalMachineNode组合时,其一个EC2Hub-EC2Node组合。 无论哪种情况,我们在hub,webdriver/RC节点和Selenium测试中都提供了什么命令/ URL?我问这是因为大多数在线文档都提到了“localhost”和端口4444,但我想使这个通用。
  2. 在设置端口/防火墙时是否有任何特定的设置?

我能够通过从AWS门户打开EC2实例上的端口5554-5559以及本地以及EC2计算机上的这些端口的防火墙来实现此目的。

请让我知道,如果我不清楚,或在任何时候含糊不清。希望你的解释。

回答

1

在EC2上运行网格与其他任何网络环境没有特别的考虑。一切都是通过您可以配置的端口上的HTTP完成的。既然你几乎肯定不希望你的网格公开曝光,并且默认安全组中的所有内容都可以与同一网络上的其他所有内容进行交流,你不应该有任何问题。

您可以从命令行或通过JSON配置文件来配置。我更喜欢后者。默认配置文件可在Google Code上找到。你会注意到那里的“hubPort”值。未显示但有效的是“hubHost”配置项。只需将其设置为集线器的主机名即可。

当您启动您的节点,提供“-nodeConfig /path/to/my/node_config.json”命令行参数,你会好到哪里去。

+0

json文件存储在其他地方吗? Google代码看起来不再可用。 – Conner

+0

Selenium将其源代码移至GitHub。您可以在以下位置找到JSON文件: https:// github。com/SeleniumHQ/selenium/blob/0f20fdbffaa03696545f2cb7ba1d2faa6537c156/java/server/src/org/openqa/grid/common/defaults/DefaultNodeWebDriver.json 注意:上述“hubPort”和“hubHost”值仍然有效,但有一个更简单的您现在也可以使用“hub”URL。 – nirvdrum