2015-05-26 86 views
2

我們目前使用Behat 3爲我們的網站自動化BDD測試。Behat在多個瀏覽器中並行

目前的設置使用Jenkins運行Selenium其重視Firefox,並使用XVFB渲染(這使我們能夠在任何錯誤保存截圖)。

這對測試站點(包括JavaScript)的工作原理以及用戶可以成功執行每個記錄的任務很有用。

我期望擴大我們的測試設施,我想添加的一件事是能夠檢查多個瀏覽器。這是非常重要的,因爲我們偶爾會出現可能會破壞功能的怪癖。

由於測試目前需要一個多小時才能運行(並且我們在Jenkins上有4個套件),所以我最好喜歡同時運行所有瀏覽器。如果我找不到同時執行此操作的方法,那麼我可能只會設置多個Behat配置文件並逐一運行。

我一直在尋找的一種可能的解決方案是Ghostlab。這將允許我們同時測試多個瀏覽器和多個設備,包括移動設備。問題是,我找不到一種以有意義的方式將它與Behat結合的方式。

我可以運行連接到Ghostlab一個瀏覽器,這將導致在所有連接的瀏覽器將採取同樣的行動,然而,一個比硒打破控制的其他瀏覽器,我不知道我們會怎麼捕捉那個信息。

TL; DR:有什麼方法可以讓我跨多個瀏覽器並行運行BDD(優選的Behat)測試,並從任何失敗的瀏覽器捕獲信息?

回答

2

這是什麼multi-configuration jobs(或矩陣作業)是在詹金斯設計的。

您可以指定一次作業配置,但添加一個或多個應該隨時更改的變量,構建組合矩陣(在您的情況下,矩陣有一個維度:瀏覽器)。一個用於矩陣中的每個組合 -

Matrix definition

詹金斯然後用多個子構建中並行運行的一個主版本。然後您可以清楚地看到每個組合的結果。

Matrix configurations and results

這需要您的測試工作可以參數化,即你可以在哪個瀏覽器應該運行,而不是在單個作業中運行所有測試一起運行時選擇。

Jenkins wiki對此功能的最小文檔,但有幾個很好的blog posts(和堆棧溢出問題)如何設置它。

矩陣工作將使用Jenkins中所有可用的「執行器」,以儘可能並行地運行構建。
在默認的Jenkins安裝中,有兩個執行程序可用,但您可以更改它,或者通過添加further build machines來擴展Jenkins。

+0

我喜歡這個答案,並且我意識到了這個特性,但是由於在E2E測試期間發生了數據庫更改,我避免了這個問題。因爲這是一個我正在測試的網站,任意創建和銷燬虛擬主機和數據庫模式都很困難(雖然不是不可能)。此外,我仍然無法測試移動設備等。如果沒有其他解決方案出現可以解決這些問題,我會將其標記爲正確的,但我希望有一種更簡單的方法來實現。嗯......我想知道是否可以使用多配置作業和虛擬機。 – DanielM

+0

我要說這是正確的答案,並且構建應該在容器或虛擬機中運行。 – DanielM

相關問題