2011-11-16 82 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