如何在 Jenkins 上運行 TestNG 測試
一、概述
在本教程中,我們將學習在 Jenkins 上運行 TestNG 測試所需的步驟。
我們將專注於與使用 TestNG 框架編寫測試的 GitHub 存儲庫集成,在我們的本地機器上設置 Jenkins,在 Jenkins 上運行這些測試,以及分析測試報告。
2.設置
讓我們首先將 TestNG 的 Maven依賴項添加到我們的pom.xml
文件中:
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.6.1</version>
<scope>test</scope>
</dependency>
如果我們使用 Eclipse,我們可以從Eclipse Marketplace安裝 TestNG 插件。
3. 使用 TestNG 編寫測試
讓我們使用從org.testng.annotations.Test
導入的@Test
註解添加一個單元測試:
@Test
public void givenNumber_whenEven_thenTrue() {
assertTrue(number % 2 == 0);
}
我們還將在/test/resources
文件夾中添加一個 XML 文件,以通過指定測試類來運行 TestNG 套件:
<suite name="suite">
<test name="test suite">
<classes>
<class name="com.baeldung.SimpleLongRunningUnitTest" />
</classes>
</test>
</suite>
然後我們可以在pom.xml
的插件部分指定這個 XML 文件本身的名稱:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>
src\test\resources\test_suite.xml
</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
4.運行TestNG測試
讓我們使用mvn clean install
命令來構建和測試我們的項目:
我們還可以通過將配置文件指定為參數來為我們的 Maven 構建運行特定的配置文件,如mvn clean test install -Pdefault-second.
我們可以看到我們的測試已成功通過,以及已運行的測試數,以及失敗或跳過的測試數。
5. 在本地機器上設置 Jenkins
正如我們所知,Jenkins 是一個開源服務器,有助於自動化軟件開發週期的多個部分,例如構建、測試和部署,以及促進持續交付或持續集成。
我們將使用 Jenkins 以自動化方式運行我們的 TestNG 測試。為了運行這些測試,我們將首先在我們的本地機器上設置 Jenkins。設置完成後,我們將通過作業運行測試,並通過日誌和測試趨勢可視化工具分析結果。
現在讓我們完成設置過程。
5.1.下載和安裝詹金斯
如果我們使用這些操作系統之一,我們可以簡單地按照 Linux 或Windows的詳細說明進行操作,或者我們可以使用brew install jenkins
在 macOS 上設置 Jenkins。
5.2.設置 Jenkins 管理儀表板
讓我們看看運行 Jenkins 的命令:
$ /usr/local/opt/jenkins/bin/jenkins --httpListenAddress=127.0.0.1 --httpPort=8080
這裡, /usr/local/opt/jenkins/bin/jenkins
表示 Jenkins 安裝的位置,而參數httpListenAddress
和httpPort
指定我們可以訪問 Jenkins UI 的地址和端口。
通過設置過程,我們將看到一條日誌消息“ hudson.lifecycle.Lifecycle#onReady: Jenkins is fully up and running”,
表明 Jenkins UI 已啟動並正在運行。
之後,我們可以通過**http://127.0.0.1:8080/** .
可以在同一屏幕上將繼續安裝的初始密碼視為日誌:
輸入密碼後,會提示我們安裝Jenkins需要的插件。此時,我們可以選擇特定的插件進行安裝或繼續進行自定義選擇。插件安裝階段開始並嘗試安裝相關插件:
綠色勾號標記已完成安裝過程的插件,而正在進行的插件與右側面板上的安裝日誌一起標記。
安裝插件後,我們將被引導到一個屏幕,我們可以在其中設置我們選擇的用戶名和密碼,或者跳過以繼續使用初始密碼。我們也可以選擇修改Jenkins URL或者繼續初始URL http://127.0.0.1:8080/
5.3.設置 Maven 和 GitHub 特定的插件
我們現在將設置用於在 Jenkins 中構建項目的 Maven 和 GitHub 插件。為此,我們可以在Dashboard
中選擇Manage Jenkins
選項:
在下一個屏幕中,我們單擊Global Tool
Configuration
選項並通過選中Install automatically
複選框添加 Maven 安裝:
設置完 Maven 安裝配置後,我們單擊Dashboard,
的“ Manage Jenkins
”選項,它會打開一個窗口,我們會在其中看到一個名為“ Manage Plugins.
在隨後的窗口中,我們單擊“ Available plugins
”選項並蒐索GitHub Integration
和Maven Integration
插件:
我們可以選擇這些插件,然後點擊Install without restarting
。
5.4.設置 Jenkins 作業以從 GitHub 項目運行測試
我們現在將設置一個 Jenkins 作業以從 GitHub 項目中的模塊運行 TestNG 測試。為此,我們選擇左側面板上的New Item
選項,為我們的作業輸入一個名稱,然後選擇Maven Project
選項。在此之後,我們可以從“ Configure
”窗口鏈接我們的 GitHub 存儲庫。
首先,讓我們選中GitHub project
複選框,然後提及項目 URL:
接下來,我們在Source Code Management
部分選擇Git
,然後輸入.git
存儲庫 URL。此外,我們還提到了Branch Specifier
部分下的分支:
在此之後,讓我們導航到Build
部分並提及pom.xml
文件的路徑。這裡的一個關鍵點是路徑是相對於項目的。作為下一步,我們還在Goals and options
部分指定 Maven 命令clean test install -Pdefault-second
(此處, -P
用於表示要用於構建的配置文件):
我們現在可以保存這些配置並返回到我們的工作並單擊左側面板中的Build Now
。它為我們提供了構建編號以及構建作業的鏈接。單擊鏈接會將我們帶到一個屏幕,我們可以在其中選擇查看控制台輸出:
單擊控制台輸出後,我們可以看到測試的運行日誌和測試的成功或失敗事件,以及
Console output
中的構建狀態:
我們還可以為 TestNG 測試設置自定義測試報告。
當我們返回 TestNG Jenkins 作業的主頁時,我們還可以將測試結果趨勢作為可視化工具查看:
我們還可以在分佈式模式下運行 Jenkins 以擴展我們的 Jenkins 設置。
六,結論
在本文中,我們通過在 Jenkins 儀表板上配置作業、執行簡單測試用例以及在儀表板上查看測試用例的執行報告,快速了解瞭如何設置 Jenkins 以從 GitHub 存儲庫運行 TestNG 測試。
與往常一樣,所有代碼片段的實現都可以在 GitHub 上找到。