2014-03-03 66 views
1

我已經閱讀過,使用網格,我們可以在多個節點之間分發測試。假設我有4個測試用例和2個節點(都具有相同的配置,platform:window,browser:firefox和maxSession = 1,maxInstances:1)我期待2個測試用例在節點1和節點2上運行2.使用webdriver進行分佈式測試

但是當我運行時,我看到所有4個測試用例都運行在節點1或節點2上,基於誰最後登錄。我都註冊到不同端口上的bug。

我的理解是否正確運行每個節點的2次測試,或者這是不可能的。

如何實現WebDriver的分佈式測試?

回答

4

我想你的意思是並行執行(這是分佈式測試)? Selenium網格將提供架構以分佈式方式運行這些測試(即將測試執行分佈在多個節點上),但您仍然需要並行觸發這些測試。

當前您的測試是按順序觸發的,所以Selenium Grid Hub使用它獲取的第一個可用節點,這是每次發生的第一個節點(出於顯而易見的原因)。

要快速查看硒併網如何從平行執行中受益,請打開4個命令提示符/終端,並在4次測試的每個觸發器中進行1次。如果你只有2個節點,每個節點只能運行一個瀏覽器,你會看到

  • 節點A - 測試1
  • 節點B - 測試2
  • 等待空閒/可用的節點{測試3和測試4}

然後根據哪個測試(1或2)完成執行,首先該節點獲得空閒並且測試3將在該節點上開始。

當然,您需要以編程方式並行觸發這些測試。


在Python中你可以使用nose,並觸發你的試運行,如下所示: -

nosetests --processes=2 allmytests #Starts 2 processes