2011-08-02 52 views
2

我運行一個測試:如何使用Selenium GRID2上運行一個集線器的多個瀏覽器

DesiredCapabilities capability = DesiredCapabilities.Firefox(); 
       IWebDriver driver = new RemoteWebDriver(new Uri("http://localhost:4444/wd/hub"), capability); 

       ISelenium selenium = new WebDriverBackedSelenium(driver, "http://localhost/"); 
       selenium.Start(); 

這將運行Firefox瀏覽器,並在http://localhost:4444/grid/console Web控制檯視圖我可以看到一個Firefox瀏覽器運行。如何在節點上並行使用多個瀏覽器?

我使用GRID2維基頁面found here

+0

你在你的測試套件中有5個測試嗎? –

回答

8

您需要同時觸發5次測試 - 都指向同一個集線器,使用所有的瀏覽器。在接收到來自不同測試的命令後,集線器會將這些命令傳遞給匹配該功能的RC。您可以在此頁面看到更多細節:http://selenium-grid.seleniumhq.org/how_it_works.html

每本網站: -

當然要真正利用硒電網,你需要 並行運行測試。如果您正在使用 Java編寫Selenium測試,則可以使用TestNG並行運行或並行JUnit。如果 傾向於使用Ruby編寫Selenium測試,則可能需要將 看成DeepTest或產生多個進程。很有可能您最喜歡的編程語言和開發平臺已經有了 解決方案。

編輯: 上面給出的網站是Selenium 1.x版本,而不是Grid 2.0。然而,運行並行測試的基本概念仍然相同

編輯2: 步驟和示例程序如下。請注意,這是一個非常基本的測試,僅向您展示Grid如何並行運行測試。

第一步 - 啓動電網樞紐 java -jar selenium-server-standalone.jar -role hub

第二步 - 開始RC節點。我們正在使用的測試例如webdriver測試。所以我們需要啓動webdriver節點。該命令將啓動一個支持5個Firefox瀏覽器,5個googlechrome和1個IE瀏覽器的webdriver節點。這是webdriver的默認配置。

java -jar selenium-server-standalone.jar -role wd -hub http://localhost:4444/grid/register 

第3步 - 創建5個獨立的程序,類似於下面給出的。這個程序是在JAVA中。您需要將其更改爲您需要的語言。將類名更改爲Program2,Program3等。如前所述,這不是並行運行測試的最佳方式。您需要使用testNG或jUnit同時觸發多個測試。由於這本身就是一個不同的話題,所以在這裏不會解釋它。

public class Program1{ 
     public static void main(String args[]){ 

      WebDriver wd; 
      //Assign a remotewebdriver object to webdriver with firefox capability 
      wd=new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"),DesiredCapabilities.firefox()); 
      wd.get("http://www.google.com"); 
      //Sleep for 2 seconds so that RC will not be released. This is to demonstrate Hub using multiple RCs 
      Thread.sleep(120000); 
      //Close webdriver 
      wd.quit(); 

     } 
    } 

第4步 - 同時運行所有5個程序。

第5步 - 觀看電網並行運行5個測試的魔力。 :)

+0

我仍在與此工作。運行2次時,我總是收到錯誤並關閉。如果只運行一次,然後工作。爲什麼?然後如何運行它2次或更多。你能舉個例子嗎? Thx – senzacionale

+0

好的,我已經更新了我的答案。請注意,在示例程序中沒有使用WebDriverBackedSelenium對象。你可以添加這行代碼,而不是使用wd.get –

+0

thx這樣一個大的幫助 – senzacionale

相關問題