咱們正在邁向自動化時代。每一家公司,不管是初創企業仍是大型企業,都在努力盡量高效地將自動化測試歸入其發佈週期。緣由很簡單,由於自動化測試大大減小了驗證重複測試場景的工做量。而Java再也不被稱爲只面向開發人員的編程語言。隨着自動化測試需求的增長,Java測試框架已經開始普遍使用,一些用於單元測試,而另外一些是爲E2E(端到端)測試而設計的。java
因此全球的自動化測試人員都很是喜歡這些Java自動化測試框架。卓碼總結了目前最流行的五種實用的Java自動化測試框架分享給你們!web
一、Jestchrome
圖源網絡:侵刪npm
被stateofjs調查評爲2018年度Java自動化測試框架第一名。Jest由Facebook開發,用於測試Java代碼,尤爲是使用React JS開發的應用程序。編程
圖源網絡:侵刪後端
安裝的先決條件瀏覽器
Jest的特別之處在於,它提供了一個不須要任何配置經驗的集成框架。這個工具已經可使用了,若是用戶正在使用npm,用戶能夠經過運行如下命令當即設置它。服務器
Jest的優勢和缺點網絡
首先是優勢:框架
(1)使用Jest的最大好處是最小配置和設置的開箱即用體驗,由於它附帶了一個mock支持斷言庫。與任何新的測試庫同樣,測試用例是使用行爲驅動的開發方法編寫的。用戶能夠將用戶的測試用例放在一個名爲_tests_的文件夾中,並開始運行它們。
(2)Jest被認爲是一個有很好文檔的、快速執行的Java測試框架。
(3)Jest提供了一種健壯的開發人員工具,代碼更不容易出錯。
該框架還能夠經過捕獲屏幕截圖來執行可視化迴歸測試。當使用React JS開發應用程序時,該特性對於防止意外致使的UI bug很是方便。它的工做原理是記錄呈現組件的屏幕快照,而後與未來呈現的組件進行比較。若是添加了任何新功能,屏幕截圖均可以輕鬆更新。
Jest的缺點:
(1)與Jasmine這樣的框架相比,它不支持太多的庫或工具,這些庫或工具備時對於在不支持Jest的ide中調試測試用例很是方便。
(2)那些對Jest感到不自在的人表示,學習的過程至關艱難。
(3)使用Jest進行快照測試對於較大的快照文件不太可行。
二、Mocha
圖源網絡:侵刪
Mocha是一個基於java的自動化測試框架,用於測試使用Node.js運行的應用程序。Mocha被評爲2018年stateofjs survey Java自動化測試框架第二名。
圖源網絡:侵刪
安裝的先決條件
安裝很是簡單,用戶只須要一個工做站,並使用如下命令安裝Mocha。
要進行全局安裝,請運行如下命令:
npm i -全球摩卡。
若是用戶想安裝mocha做爲開發的依賴項,能夠運行npm i -save-dev mocha。
Mocha的優缺點:
首先是優勢:
開發人員和測試人員喜歡摩卡有不少緣由。
(1)該應用程序是開源的,而且容許靈活性;
(2)它能夠很容易地支持生成器;
(3)因爲它是舊的,許多教程和文檔均可以在網上找;
(4)使用靈活的報告順序執行測試用例;
(5)Mocha幫助您輕鬆地將異常映射到相關的測試用例。
Mocha的缺點:
(1)使用開發人員工具,Mocha能夠作得更好;
(2)隨着Jest的出現,摩卡在測試人員社區中的受歡迎程度顯著降低;
(3)摩卡能夠在總體性能和機上功能方面作得更好。
三、Jasmine
圖源網絡:侵刪
Jasmine,主要用於異步測試,是一個功能豐富的Java自動化測試框架。應用程序運行在Node.js上,經過連續運行測試用例,容許準確和靈活的bug報告。根據2018年的stateofjs, Jasmine在Java測試框架中排名第三。
圖源網絡:侵刪
安裝的先決條件
Jasmine的安裝很是簡單。你只須要一個能鏈接互聯網的工做站。在cmd/終端中運行如下命令安裝Jasmine。
可是,配置比Jest稍微複雜一些。在運行測試用例以前,用戶必須設置並配置test.js文件。
Jasmine的優勢和缺點
首先是優勢:
(1)Jasmine最大的優勢是它能夠兼容你選擇的全部框架或庫,這使它成爲最靈活的Java測試框架之一。不管用戶想要使用Sinon來模擬或者Chai來斷言測試用例,Jasmine都將毫無困難地幫助用戶。
(2)Jasmine的社區很是大,用戶將得到各類各樣的支持,包括庫、博客文章或視頻教程。
(3)隨着社區的擴大,Jasmine的學習曲線很是平滑。用戶也會獲得使人印象深入的文檔。
提供優雅的編程風格和模式。
Jasmine的缺點:
(1)Jasmine須要不少配置。在使用mock框架或斷言庫以前,用戶必須顯式地選擇它。若是用戶的項目須要這種靈活性,那麼它可能頗有用。若是沒有,配置過程可能有點使人沮喪。
(2)Jasmine經過使用Jasmine -snapshot庫支持快照測試。然而,集成它可能有點困難。
jest的流行致使Jasmine的受歡迎程度降低。
四、Nightwatch
圖源網絡:侵刪
對於自動化的網絡應用程序測試,尤爲是使用Node.js開發的應用程序,守夜人是一個強大的自動化框架,它使用Selenium WebDriver API,容許用戶執行端到端測試。守夜人的主要目標是簡化編寫自動化測試用例的過程,並幫助在用戶的開發週期中創建持續的集成。
安裝的先決條件
由於Nightwatch是用來測試Node.js應用程序的,因此用戶的工做站應該安裝了Node.js的最新穩定版本。另外,安裝npm,由於它是安裝框架所必需的。
爲了在本地運行框架,用戶還須要一個獨立的Selenium服務器和WebDriver API。這將幫助用戶使用Firefox或Chrome在本地測試應用程序。
Nightwatch的優勢和缺點
首先是優勢:
(1)首先,設置很是簡單。
(2)用戶只須要導入Selenium庫。
(3)這個社區至關大,若是你須要任何關於設置或編寫測試用例的幫助,能夠(4)經過博客和教程的形式得到不少資源。
(5)語言很是簡單。你只須要一點面向對象編程的基礎知識。
若是測試人員屬於一個Java團隊,後端團隊成員能夠輕鬆獲取知識,並幫助測試人員編寫自動化測試用例,從而提升團隊的總體生產力。
Nightwatch的缺點:
(1)測試用例不像其餘框架那樣容易閱讀。語法不清楚,用戶也不可能對每一步都寫清楚描述。用戶能夠以註釋的形式來完成它,可是若是任何測試用例失敗,它將都不會顯示在日誌中。
(2)雖然用戶能夠爲每一步添加一條清晰的錯誤消息,但要找出哪裏出錯了,仍是會比較困難。
5. Puppeteer(Library)
圖源網絡:侵刪
Puppeteer是另外一個基於Node.js的自動化測試庫,它提供了一個幫助用戶經過覆蓋標準開發工具協議來控制鉻的API。許多能夠在瀏覽器中手動完成的場景能夠在木偶師的幫助下自動完成
安裝的先決條件
Puppeteer將要求用戶的工做站擁有最新版本的Chrome和Chromium。用戶還須要在系統中安裝紗線或npm。js也是必須的,由於這個框架是用來測試基於Node.js的web應用程序的。
Puppetee的優勢和缺點
首先是優勢:
(1)使用操縱器編寫的自動化腳本覆蓋了開發工具協議應用編程接口。調用一個應用編程接口將會自動完成,而不是手工製做網絡套接字負載
(2)推出chrome
(3)在瀏覽器中打開一個新標籤
(4)導航到所需的測試站點。
(5)捕捉截圖並關閉瀏覽器。
Puppeteer容許用戶模擬資源,從而避免了可靠性、一致性和速度的問題。用戶能夠操做外部資源,好比CSS選擇器,以使用戶的特定測試用例執行得更快。
Puppetee的缺點:
(1)Puppeteer最大的缺點是隻能在Chrome上運行。若是用戶的項目要求應用程序是跨瀏覽器兼容的,那麼用戶將不得不依賴於NightWatch或其餘框架來跨其餘瀏覽器測試應用程序。
(2)若是用戶的項目要求應用程序跨瀏覽器兼容,用戶將不得不依靠NightWatch或其餘框架來測試跨其餘瀏覽器的應用程序。
卓碼列出了用於測試特定的基於web應用程序的框架的框架,以及用於自動化測試任何基於java的web應用程序的通用應用程序。你們能夠根據自身的需求選擇適合的測試框架。