2017-03-21 16 views
1

我正在通過Jenkins執行我的Selenium WebDriver測試,測試執行本身在Sauce Labs上運行。我的測試運行在我們公司的網站上,該網站在許多國家都有出現,所以我創建了maven的執行配置文件,以便在所有域或單個特定域上運行測試。我的POM爲surefire和配置文件看起來像這樣:Jenkins沒有在構建概覽中顯示所有已執行的測試/測試結果

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.19.1</version> 
    <configuration> 
     <parallel>all</parallel> 
     <threadCount>10</threadCount> 
     <groups>${testcase.groups}</groups> 
    </configuration> 
</plugin> 

<profile> 
    <id>all</id> 
    <properties> 
     <testcase.groups>categories.AllDomains</testcase.groups> 
    </properties> 
</profile> 

<profile> 
    <id>germany</id> 
    <properties> 
     <testcase.groups>categories.Germany</testcase.groups> 
    </properties> 
</profile> 

<profile> 
    <id>poland</id> 
    <properties> 
     <testcase.groups>categories.Poland</testcase.groups> 
    </properties> 
</profile> 

所有測試正確標記必要的@Category類別。 如果我選擇一個域並運行測試,所有測試都會執行,並且在Jenkins中正確顯示Total Tests/Failed Tests。

但是,如果我在所有域上運行測試,Jenkins每次都會顯示不同數量的Total Tests/Failed Tests。所以我從每個構建中得到的反饋都是不同的,並且完全不可行,因爲失敗測試與Sauce Labs上的執行相比是不正確的(Sauce Labs也有不斷的Total Tests/Failed Tests)。

來自鏈接的圖像顯示我的Jenkins Test Graph,標記的部分都具有相同的執行配置以在所有域上運行,但執行測試的數量完全不同。

感謝醬實驗室,我知道我的所有測試指定的測試運行,你可以看到在Image總測試的數量是一致的。

現在我檢查了我所有的Code和Jenkins配置10次,找不到原因,爲什麼會發生這種情況。那Jenkins爲什麼不顯示實際結果呢? 如果我進入執行數據並檢查每個類,我可以看到它添加並刪除了每個域的隨機測試(但仍然在Sauce Labs上執行它們),沒有模式,沒有重複!

PS:該配置的個人資料和域執行的而沒有改變,這個問題開始冒出(沒有更新硒碼,詹金斯插件,詹金斯本身)

回答

0

一些更多的測試,我發現後在Surefire中執行並行測試是一個問題。看起來parallel=all開始切斷報告XML,詹金斯沒有收到所有執行測試的所有反饋。

當我使用parallel=all來減少整體測試執行時間時,我查看了forkCount以使我的時間保持在低位,沒有parallel=all

所以在我的POM我的新神火的配置現在看起來是這樣的:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>${surefire-version}</version> 
    <configuration> 
     <parallel>methods</parallel> 
     <threadCount>10</threadCount> 
     <forkCount>2</forkCount> 
     <reuseForks>true</reuseForks> 
     <parallelTestsTimeoutInSeconds>300</parallelTestsTimeoutInSeconds> 
     <groups>${testcase.groups}</groups> 
    </configuration> 
</plugin> 

測試執行時間仍然很低,但所有報告都是完整的,詹金斯正顯示出正確的結果!

相關問題