更新時間:2022-12-21 11:50:07 來源:動力節(jié)點 瀏覽1734次
在本文中,我們將介紹用于 Java 測試的最常見的測試框架。
Selenium 是一個免費的開源測試框架,主要用于測試基于不同平臺的 Web 應用程序。Selenium最大優(yōu)勢在于對網(wǎng)絡應用程序進行自動化測試。Selenium 不僅是一個工具,而且是一個完整的套件,可以你補研發(fā)的的測試需求。Selenium 被廣泛應用的主要原因是免費開源使用的。Selenium還是跨平臺使用,適用于各個系統(tǒng)。Selenium 還可以與 Java 中的其他工具(如 docker 和 maven)結合運行。
優(yōu)點:
多瀏覽器支持
多種語言和框架支持
易于使用
更好的集成和可重用性
社區(qū)活躍,頻繁更新
缺點:
創(chuàng)建時比較繁瑣,通常在創(chuàng)建測試用例時,會比較耗時,當然熟悉后就那么幾個步驟。
缺乏內(nèi)置報告工具
僅適用于網(wǎng)絡應用程序
Serenity 提供一個用于行為驅動測試的開源平臺,早期以 Thucydides 為名。Serenity 可為測試自動化項目編寫清晰且結構化的驗收標準。此外,該框架具有增強 WebDriver 和 JUnit 功能的能力,還允許用戶地創(chuàng)建描述性測試報告。
優(yōu)點:
支持多種自動化驗收測試解決方案
測試后快速創(chuàng)建文檔
可以很容易地與各種其他框架集成
缺點:
創(chuàng)建功能文件需要更長的時間
項目參與者之間必須保持持續(xù)的溝通
Junit是目前應用最廣泛的單元測試框架,受制于它初衷,Junit的框架旨在執(zhí)行單元測試,研發(fā)人員可以通過函數(shù)或方法在路徑中傳遞代碼片段。當執(zhí)行測試驅動的方法時,個人建議在編寫實際代碼之前預先完成單元測試代碼。按照正常順序,開發(fā)人員編寫代碼后,需要先執(zhí)行測試用例,然后才能運行代碼片段。每次添加新代碼時,都要再次運行測試用例,以確保通過所有測試場景,并且代碼沒有問題,才允許上傳代碼到git庫中。Junit框架之所以與眾不同,是因為它比其他類似框架允許更快、執(zhí)行更高效。
優(yōu)點:
JUnit 提供對測試斷點允許的支持
Junit提供比較完善的測試報告
Junit是一個簡化框架,適用于部署自動化測試場景
Junit具有編寫自動驗證測試用例的能力
缺點:
使用相對較大的測試套件時,Junit顯得不會那么靈活
Junit測試后,沒有生成 HTML 報告的功能,這對于非研發(fā)人員來說,是一本天書
Junit不支持依賴測試
TestNG 是一個開源測試框架,并受到其他兩個著名框架的啟發(fā)——JUnit 和 NUnit,具有一些新的附加功能。源自 NG 代表下一代的名稱,TestNG在證明其測試實力方面并不令人失望。TestNG測試過程也不是很復雜,我們可以通過框架請求測試數(shù)據(jù)庫或前端來測試場景。還可以提取 HTML 報告,這對于項目經(jīng)理,產(chǎn)品經(jīng)理以及其他交付人員來說是非常有用。
優(yōu)點:
支持并行測試
支持日志生成
能夠創(chuàng)建測試后 HTML 報告
底層測試用例可以組合在一起
可以設置測試用例執(zhí)行的優(yōu)先級
缺點:
設置 TestNG 需要更多時間(對新手來說,過程是非常痛苦的)
如果不需要優(yōu)先考慮測試用例,則不推薦。
Cucumber 是一個用 Ruby 編寫的測試框架,非常受測試人員的歡迎,因為它提供了一個統(tǒng)一的文檔和規(guī)范標準,并提供了一個報告文檔。此外,規(guī)范標準會自動更新。
優(yōu)點:
友好的可讀性
支持步驟可重用性,減少了一次又一次編寫相同代碼的需要
可以使用一些示例來完成自動化測試
缺點:
cucumber與Gherkin整合一起增加了框架的復雜性
測試人員/開發(fā)人員更在乎編寫可在簡單通用代碼,完成工作的場景中重用的代碼。
這是一個基于 Java 原生的測試框架,與 selenium 驅動程序結合使用,并支持行為驅動開發(fā) (BDD)。JBehave提供了一個比較友好的報告功能,這意味著可以 XML、HTML 或文本格式生成報告。
優(yōu)點:
幫助用戶提供出色的文檔
支持測試后生成 HTML 報告
JBehave高效且易于使用
開箱即用的 JUnit 支持
缺點:
不支持特性化功能,只支持事件完整性,進而可能導致應用程序發(fā)生錯誤或者與實際業(yè)務需求相悖,最終導致所有各方互相指責(甩鍋)。
Mockito 是一個開源的基于 Java 的行為驅動測試框架。該框架的主要功能是模擬對象是自動創(chuàng)建的,無需顯式創(chuàng)建它們。
優(yōu)點:
支持異常
可以使用注釋創(chuàng)建模擬對象
對返回值的提供基礎支持
模擬對象不需要手動編寫
缺點:
不支持局部變量的模擬
不支持私有和靜態(tài)方法