2012-01-31 58 views
1

我有一個運行selenium grid2集線器並連接了2個節點(節點a和節點b)。我如何使用它們?我如何在多個節點上運行測試?我有這種感覺,我失去了一些明顯的東西。如何在php webdriver中使用硒網格2?

如果試圖這樣:

phpunit tests/phpunit/GUI/

有一個2測試例(RegTest,LoginTest)兼具執行(在序列),但只有在一個節點。 (節點a)第二個節點不被觸摸一次。

我失蹤了什麼?

 
node a (ubuntu) java -jar selenium-server-standalone-2.18.0.jar -role node -hub http://localhost:4444/grid/register 
node b (xp) java -jar selenium-server-standalone-2.18.0.jar -role node -hub http://localhost:4444/grid/register 

兩個節點都安裝了firefox。我連接到使用此電話的中心:

$this->oWebDriver = new WebDriver(self::SELENIUM_SERVER, self::SELENIUM_SERVER_PORT); 
$this->oWebDriver->connect('firefox'); 

這個PHP的webdriver:http://code.google.com/p/php-webdriver-bindings/

回答

1

所以我們在這裏2周後。隨着一些延伸的閱讀和更多的智力,我能夠爲自己弄明白。

您可以輕鬆使用多於一個節點,一次啓動多個phpunit測試。問題是phpunit測試(3.6)幾乎是一個接一個地運行。 您可以使用ant(或類似工具)繞過此問題。正如你可以在這裏看到的: http://jenkins-php.org/

你可以使用<parallel threadCount="2">開始並行任務,這可能是phpunit測試。還有,並非每一個測試適合(如果要加載夾具進入設置方法你的數據庫如)

除了這是沒有辦法的(至少我無法找到任何)解決運行並行的possibilty在集線器上的一個特定節點(也許這不是集線器感覺),但你可以使用能力來解決sepecif平臺或瀏覽器或瀏覽器版本

如果集線器無法找到任何適合您的功能的東西,它將返回一個錯誤它會使用一個適合你描述的瀏覽器功能

這裏的問題是平臺是一個ENUM字段,你必須用它來限制值來描述你的noced(LINUX,MAX,VISTA,WINDOWS,XP)沒有W7,而WINDOWS非常貪婪。如果你有2個節點,一個是XP,另一個是WINDOWS,並且在你的Capabilities中設置了WINDOWS,那麼中心將有機會選擇XP(因爲它是一個WINDOWS平臺),所以要注意這一點。

..我想這就是我所要求的2周前( - ;