2012-03-22 75 views
3

我對Selenium/WebDriver測試沒有任何經驗。我知道,玩硒支持開箱即用的,但坦率地說內置的支持似乎並不符合我的預期:使用Play Framework的多瀏覽器Selenium/Web驅動程序測試

  1. 我想設置運行在多個瀏覽器/操作系統的測試自動化構建。我知道像SauceLabs這樣的網站可以讓您輕鬆訪問許多不同的瀏覽器,並希望利用這一點,但是從我收集的內置Selenium測試中不會很好。
  2. 更一般地說,內置測試似乎是用HTML編寫的,並且不支持用Java編寫測試(在我看來,這是一個更好的選擇)。

我試着擴展UnitTest並使用SauceLabs自己。這似乎運作良好,但我碰到一個障礙,試圖在多個瀏覽器上運行相同的測試。我嘗試使用jUnit's Parametrized Tests,但那並沒有那麼好(我不斷得到有關我的測試類有太多構造函數的錯誤)。

是編寫系統/ Selenium測試有最佳實踐Play中:

  1. 輕鬆多個瀏覽器運行爲持續集成系統的一部分?
  2. 是用Java編寫的,而不是HTML?
+0

關於無法在Sauce的Java庫上運行多瀏覽器測試,您可以抓住[JSON的所有瀏覽器/操作系統組合](http://saucelabs.com/rest/v1/info/browsers/webdriver),並使用另一個「構建」硬編碼瀏覽器數組的方式重新格式化爲jUnit測試文件。這克服了我與PHP庫 – 2013-09-18 17:44:36

回答

3

我確實開發了這個遊戲!模塊,我認爲也可以爲你工作:

https://github.com/miguelrgonzalez/Play--Selenium-webdrive

它仍然是在真正的早期階段,但它已經具有一定功能。

隨意岔開!

+0

類似的問題謝謝!當我有機會時,我一定會看到這個。 (目前接受的答案) – ripper234 2012-04-04 12:25:07

0

這當然是可能的。但是,如果不使用Selenium/WebDriver Grid,很難實現這一點。默認情況下,許多瀏覽器只允許在系統上安裝自己的一個版本。儘管您可以控制要啓動的瀏覽器,但您無法控制哪個版本(或者您僅限於當前安裝的版本)。

使用網格,您可以利用現有的基礎設施有以下步驟:

  • 建立樞紐節點
  • 有不同的節點(機,虛擬機等)連接至本中心。這些節點都包含不同的瀏覽器,這些「功能」在連接時在集線器上註冊。
  • 運行測試時,不是針對本地瀏覽器運行測試,而是將測試分派到集線器,集線器將嘗試爲在網格上註冊自己的節點中指定的功能找到最佳匹配。網格將來回執行所有必要的消息編組,以便您可以透明地在網格上運行測試,並且具有與在本地執行同樣的易用性。

有關網格的更多信息,請參閱here。儘管這些信息與Play框架沒有特別的關係,但希望它會有所幫助。

0

爲了使用Play運行Selenium 2/WebDriver測試,您不必做任何特殊的事情!框架。

只需編寫您的RemoteWebDriver測試並從play.test.UnitTest擴展它們。然後,這些測試將由Play執行! TestRunner,顯然,結果將保存在Play中!標準方式。

相關問題