來源:Dev.to Java 單元測試框架為開發人員提供標準、複雜且可擴展的工具來建立應用程式或任何其他軟體。它們由大量包含預先編寫的程式碼的物件組成。根據測試框架的選擇,它包括函式庫、編譯器、工具和 API。Java 單元測試框架為應用程式提供強大的安全控制。如果發現安全漏洞,可以在框架的網站/支援上修復。框架創建者甚至提供內建函數和模組,以提高程式設計師和測試人員的效率和速度。這十年對測試平台有何期待?我們向您展示了截至 2020 年最佳 Java 測試框架的清單。
1.J行為
JBehave是最好的 Java 測試框架之一,支援 BDD(行為驅動開發)。BDD 是 TDD(測試驅動開發)和 ATDD(驗收測試驅動開發)的演進延續。 Jbehave的主要發行版:- J行為網,
- JBehave 核心。
- Commons-lang-2.4.jar
- Junit-4.1.0.jar
- Jbehave-core-3.8.jar
- Freemarker-2.3.9.jar
- Plexus-utils-1.1.jar
- 參數-2.5.jar
- org.apache.commons.collections.jar
- org.apache.commons.io.jar
- JBehave 的測試框架因其周到的細節和直覺的易用性而表現出色。
- JBehave 在 BDD 方面做得非常出色,它提供了處理不同專案但具有相似規範的不同開發團隊之間的整合。
- JBehave框架使用半官方語言,這對開發人員非常有幫助。領域詞彙確保團隊結構的一致性。
- 由於規範遵循相同的格式,利害關係人和專案經理可以更透明地了解測試團隊和開發團隊的績效。
2.JUnit
JUnit是一個開源回歸測試框架,主要由經驗豐富的開發人員使用來執行單元測試、加快程式設計速度並提高 Java 程式碼的品質。使用此工具的主要目的是使 Java 開發人員能夠編寫腳本並實現可重複的測試案例。它是Java中最常用的單元測試框架之一。大多數情況下,JUnit 用於測試小段程式碼。透過將 Selenium WebDriver 與 JUnit 結合進行自動化 Java 測試,它還可以用於執行自動化網站測試。當添加任何新程式碼時,測試人員將被要求重新載入完整的測試案例並確保沒有中斷。 JUnit 特色:- 測試套件;
- 使用常見的物件集;
- JUnit 類別;
- 測試運行者。
- 您的電腦上有最新版本的 JDK。
- (可選)解壓縮 $JUNIT_HOME/src。jar 檔案。
- 使用物件導向語言(最好是 Java)開發應用程式的技能和經驗。
- 下載新版本的 JUnit 並設定框架。
- 由於 JUnit 支援 Java 8 功能,因此它可以用於整合測試和單元測試。
- 該框架可以輕鬆地在早期階段檢測到錯誤,從而產生健康可靠的程式碼。
- 使用 JUnit 的程式設計師發現它非常有用。它使閱讀程式碼和檢查漏洞變得更加容易。
- JUnit 可讓您建立沒有錯誤且具有更好可讀性的程式碼。
- 幾乎相容於所有主流 IDE,如 Eclipse、NetBeans、Maven、Ant 和 IntelliJ IDEA。因此,您可以直接從這些 IDE 輕鬆編寫和執行單元測試。
- 使用更新版本的 JUnit(版本 5),您可以輕鬆定義例外狀況。
- 此單元測試框架可以與Java 5或其他版本一起使用。
3. 寧靜
Serenity以前稱為 Thucydides,是使用最廣泛的開源 Java 測試框架之一。Serenity BDD 框架將協助您建立清晰、結構化且可管理的測試標準。它擴充了 Selenium WebDriver 和 JUnit 的功能。透過這個專用平台,您可以建立描述性測試報告。此外,您可以將自動化測試與您的需求相符。總體而言,該框架使Java開發更加可靠和高效。 寧靜特點:- 開源專案;
- 有關測試和實施結果的完整報告;
- 每次測試的商業格式報告。
- JDK 5 或更高版本。
- Maven 3.0 或更高版本。
- IDE(通常是 Eclipse)。
- 此框架可協助測試人員為 REST 服務建立測試案例。
- 在測試用例的描述和理解及其實現方法之間保持平衡。
- 使用者不需要花費額外的時間來維護或創建自己的自動化基礎架構。
- Serenity可以與各種開發框架(例如Spring)和測試框架(例如Selenium、JBehave)以及專案管理工具(例如JIRA)整合。
4.測試NG
TestNG是最受歡迎的 Java 測試框架之一,用於整合、功能和單元測試。它由Cedric Beist於2004年創建,現已更新至版本7。它是JUnit框架的主要競爭對手。TestNG 與 JUnit 類似,但有一些 Junit 不支援的註解和功能。TestNG 幾乎可用於所有類型的軟體測試,包括端到端、單元、整合和功能。TestNG 和 JUnit 都是基於 Java 的框架,可讓您編寫測試並驗證最終結果。如果測試成功,您將看到綠色條,否則您將看到紅色條。 TestNG的特色:- 支援依賴方法的測試;
- 靈活的測試配置;
- 支持穩健的執行模型;
- 安裝在 BeanShell 中以增加靈活性。
- 最新的JDK版本;
- 最新版本的Eclipse;
- 對Java程式語言或其他物件導向程式語言的理解和實作經驗。
- 允許您建立和執行多個程式碼片段的平行測試。
- 實作測試案例時,您可以產生 HTML 格式的報表。
- 可以根據優先順序輕鬆組織和分組測試。只需放置框架來進行外部測試或資料庫測試,運行測試就容易得多。
- 透過參數化資料和使用註釋可以輕鬆設定優先順序。
5.硒化物
Selenide是一個受歡迎的開源 Java 測試框架,由 Selenium WebDriver 提供支援。它是為 Java 應用程式編寫準確、可交流且穩定的 UI 測試的優秀工具。它擴展了 WebDriver 和 JUnit 的功能。WebDriver 是我們最喜歡的 UI 測試工具之一,但它缺乏逾時功能。例如,測試 Ajax 等 Web 技術。Selenide 框架可以輕鬆處理所有這些問題。另外,它更容易安裝和學習。您只需專注於邏輯,Selenide 將完成剩下的工作。 硒化物特點:- 不需要複雜的設定;
- 不需要編寫大量程式碼;
- 節省大量時間;
- Jenkins 等 CI 工具的理想配置。
- JDK 5 或更高版本;
- Maven 3.0或其他版本;
- 整合開發環境(IDE)工具。大多數情況下,所有開發人員都喜歡 Eclipse,因為 Eclipse 和 Maven 的組合更容易使用。
- Selenide 讓您的測試準確且穩定,解決(幾乎)所有 Ajax/計時問題。
- 減少編寫測試案例的過程。
- 支援使用 AngularJS 開發的應用程式的測試。
- 減少其他 Selenium 工具之前使用的命令數量。
6.儀表
Selenium Thoughtworks 的創建者發布了另一個 Java 測試框架,用於對 Web 應用程式執行自動化測試。Gauge是一個免費的開源 Java 測試自動化框架,可以用更少的程式碼減輕驗收測試的負擔。它是用於測試行動網站的技術堆疊類別中最常用的 Java 測試框架之一。無論語言如何,使用此框架的自動化測試都可以產生易於閱讀的測試。與Selenium類似,這個測試框架支援多種程式語言,包括Ruby、JavaScript、Java、C#和Python。 儀表特點:- 使用方便,文法靈活;
- 使用商務語言;
- 支援多種語言和平台;
- 很多插件。
- 下載並安裝Maven;
- 作業系統 Microsoft Windows 10 或更高版本;
- 記憶體 – 512 MB RAM(最低);
- 必須使用整合開發環境 (IDE) 配置 Gauge 插件,或者如果您從 CMD/終端執行測試,則必須安裝 Gauge 框架。
- 使腳本可讀且易於理解。
- 易於使用,語法靈活,支援所有類型的語言(Java、Javascript、C#、Ruby、Python 等)和平台。
- 允許您在您選擇的整合開發環境 (IDE)(IntelliJ、Vi VS Code、Visual Studio、Maven、Gradle、Eclipse 等)中建立測試。
- 執行並行測試並產生自訂報告。
- 輕鬆測試大型資料集,同時保持高精度和可讀性。
- Gauge是一個新框架,所以使用者對它了解不多。
- 由於驅動程式是靜態的並且必須與腳本結合使用,Gauge 不支援 IntelliJ 內規範的安全並行實作。
7. 蓋布
Geb 是一個建立在 Selenium WebDriver 之上的瀏覽器測試框架。這使得它非常適合自動化測試,您可以輕鬆地在 WebDriver 支援的所有瀏覽器上執行跨瀏覽器測試。Geb 為前端資料分析、Web 測試等提供了非凡的功能。它的獨特之處在於它查詢 HTML 頁面的方式,產生類似 jQuery 的語法。Geb 平台也提供頁面物件模型的本機支援。Geb 可用於一般抓取、腳本編寫,也可用於自動化。由於它與 TestNG、JUnit 和 Spock 等測試框架集成,因此它同樣適合作為驗收測試、Web 測試或功能測試的解決方案。 蓋布特點:- 完整的 jQuery 語法支援;
- 阿帕契許可證 2.0;
- 相容於網路驅動程式;
- 頁面物件建模的穩定性;
- Groovy 的發音。
- 頁面物件表單和 Geb 的 Groovy DSL 使測試易於閱讀,因為它們或多或少類似於英語。
- 高速運行測試並節省您的測試成本。相容於多種瀏覽器,如 Internet Explorer、HTMLUnit、Firefox 和 Chrome。
- 在使用者會觀察到的真實環境中即時執行測試。在單一腳本中提供最大的測試效率。
- 允許您毫無問題地進行回歸測試。您可以執行 Geb 測試案例來檢查應用程式中的修改或修復後是否有任何活動功能被破壞。
- Geb 的缺點是它使用 Groovy 語言中的 WebDriver。因此,使用 Webdriver 時僅支援該特定語言。但是,如果您嘗試直接使用 WebDriver,它將支援其他語言,包括 Java、Ruby、C# 和 Python。
- Geb 不適合小型項目,但適用於大型任務。如果您的 Web 應用程式不包含資料必須流經的頁面和表單,則其結構可能看起來很笨重。
8.斯波克
Spock是一個流行的 Java 測試自動化框架。它是用 Groovy 編寫的,允許測試人員在 Java 虛擬機器上運行資料驅動的測試。Spock 與許多支援 JVM 的語言提供了出色的兼容性。Spock的特色之一是程式碼文件和程式碼可讀性有條理、整齊,並且可以解釋簡單的英文句子。軟體開發人員經常使用它來用 Java 創建企業應用程式。由於這些原因,Spock 成為 2020 年最受歡迎、最用戶友好的 Java 測試框架。 史波克特點:- 事實上,這是 JUnit Java 框架的擴充版本;
- 支援模擬對象;
- 測試可以用任何語言編寫。
- 最新的JDK版本;
- 更新Eclipse版本;
- 了解 Java 程式語言。
- 與其他 Java 自動化測試框架相比,具有令人驚嘆的可讀性,確保與簡單英語句子的兼容性。
- 使用 Spock 進行存根和模擬比以往任何時候都更容易、更輕鬆。此外,它們內建於框架中。
- 更清晰、更短的參數化。
- 維護周圍環境,更容易發現故障原因。
- 簡化且可溝通的領域特定語言 (DSL)。
- 它是用 Groovy 編寫的,因此您必須具備 Groovy 的基本知識。
- 您可能會發現 Spock 框架有點笨重,但是一旦您熟悉了它,您就不會考慮切換到其他 Java 測試框架。
9. HttpUnit
HttpUnit是一個廣泛使用的開源測試框架。它允許您在沒有任何瀏覽器要求的情況下測試網站。HttpUnit 非常適合執行 Web 應用程式的自動化測試腳本。顧名思義,HttpUnit 可用於單元測試。然而,常見的 Web 層元素(例如 Servlet、JSP(JavaServer Pages)和其他模板元素)不適合單元測試。該框架以 Java 編寫,可讓您在返回的頁面、XML DOM、文字、表格容器、連結和表單上執行測試。 HttpUnit的特色:- Cookie 支援;
- 支援HTTPS和HTTP協定;
- HTML 回應支援;
- 代理伺服器支援;
- 出色的 JavaScript 支援。
- 系統必須支援Java JDK 1.4或最新版本。
- 將與 HttpUnit 整合的 Tidy.jar 和 httpunit.ja 新增到您的類別路徑中;也要確保預先安裝了 XML 解析器。
- 如果您使用舊版的 Java,則必須在類別路徑中包含與 JAXP 相容的 XML 解析器。
- 此頁面提供了 HttpUnit 的最新版本。
- 允許您自動測試 Web 應用程式並協助進行回歸測試。
- HTTPUnit 的好處之一是它比其他測試自動化框架(例如 Selenium)快得多。
- 出色的 JavaScript 支持,可讓您模擬自訂瀏覽器(IE 或 Firefox)的工作。
- HTTPUnit 使用Rhino JavaScript 引擎作為其核心語言,並為瀏覽器實作提供精確的物件執行。
- 來自流行JavaScript庫的單元測試是基於這些單元測試被整合到HtmlUnit自己的單元測試中。支援 jQuery 1.11.3、MochiKit 1.4.1、MooTools 1.2.1 等函式庫,與 HtmlUnit 配合良好。
- 能夠使用 HtmlPage.executeJavascript (String yourJsCode) 將程式碼插入目前頁面。
- 對於執行簡單測試來說這是一個不錯的選擇,但建立複雜測試將需要更多程式碼。
- 像 Selenium 這樣的框架更加具體,允許以瀏覽器為中心的行為,而不會限制正在測試的應用程式。使用 HttpUnit 框架,除了某些主要瀏覽器之外,您將獲得有限的支援。
10.JWebUnit
JWebUnit是一個基於Java 的測試框架,是JUnit 的擴充。它用於整合、回歸和功能測試。JWebUnit 將 HTMLUnit 和 Selenium 等目前活躍的框架與簡單的測試介面結合。這樣您就可以立即檢查網頁應用程式的準確性。JWebUnit 可用於執行螢幕導航測試。該平台還提供了先進的 Java 應用程式編程接口,用於導航 Web 應用程式以驗證應用程式的準確性。這考慮到了連結導航、表單輸入和提交、表格內容的合理性以及業務應用程式的其他常見功能。 JWebUnit的特色:- 用於導航 Web 應用程式的頂級 Java API。
- 基於 Java 的開源框架。
- 您需要安裝 Maven。
- JWebUnit 目前的穩定版本是 3.3。需要 Java 1.7。
- 新增您需要的外掛程式:HtmlUnit,以實現更快的測試以及對 Javascript 和 Webdriver 的出色支援:BETA 品質。
- 若要在使用 Maven 2 時管理 Eclipse 中的依賴項,請使用 m2e 外掛程式。
- 用於測試螢幕導航。
- 提供用於導航 Web 應用程式的頂級 API。
- 透過簡單的導航和易於存取的斷言,您可以比使用 JUnit 或 HtmlUnit 更快地建立測試。
- 如果有人希望從 HtmlUnit 切換到其他類型的外掛程式(例如 Selenium),則無需重寫測試。
GO TO FULL VERSION