自動化測試可以快速自動完成大量測試用例,節約巨大的人工測試成本;同時它需要擁有專業開發技能的人才能完成開發,且需要大量時間進行維護(在需求經常變化的情況下),所以大部分具有很好開發技能的人員不是很愿意編寫自動化用例。但由于軟件規模的高速增長,人力資源的逐步稀缺,自動化測試已是勢在必行。
下面是我精選的7個Java測試工具和框架。
1.Arquillian?
Arquillian是JVM一個高度創新性和可擴展的測試平臺,支持Java開發人員輕松創建自動化集合的,功能性的和驗收的測試。Arquillian允許在運行時間執行測試。Arquillian可以用來管理單個或多個容器的生命周期,捆扎測試用例,從屬類和資源。它還能夠部署歸檔到容器中,在容器中執行測試、捕獲結果,并創建報告。 Arquillian集成了常見的測試框架,如JUnit 4、TestNG 5,并允許使用現有的IDE發布測試,并且由于其模塊化的設計使得能夠運行Ant和Maven測試插件。
官方網站:Arquillian · Write Real Tests
2.JTest?
JTest也被稱為“Parasoft JTest”,是一款通過Parasoft制作的自動化的Java軟件測試和靜態分析軟件。JTest包含的功能有:單元測試情況下的生成和執行、靜態代碼分析、數據流的靜態分析、度量分析、回歸測試、運行時錯誤檢測。 此外,它還具備了同行代碼審查流程自動化和運行時錯誤檢測的功能,如:競態條件、異常、資源和內存泄漏、安全漏洞攻擊。
官方網站:Jtest - Parasoft's Automated Java Testing Tool
3.The Grinder?
“The Grinder”是一個Java負載測試框架,不但運行簡單,而且其分布式測試采用了許多負載注入機器。只要有Java API,The Grinder就可以負載測試。這包括HTTP Web服務器、SOAP和REST Web服務器、應用程序服務器、以及用強大的Jython和Clojure語言寫的包含了自定義協議的測試腳本。The Grinder的GUI控制臺允許對多個負載注射器進行監測和控制,并自動管理客戶端連接和cookies、SSL、代理感知和節流連接。 The Grinder在BSD風格的開源許可下是免費的。?
4.TestNG?
TestNG是一款為Java編程語言設計的測試框架,靈感來自于JUnit和NUnit。 TestNG的主要功能是覆蓋范圍更廣的測試分類,如單元、功能性、端到端,一體化等。它還有一些新的功能,可以使之更強大和更容易使用,如:注解、具備大型線程池各種策略的運行測試、多線程的代碼測試、靈活的測試配置、參數化數據驅動的測試支持,等等。 TestNG支持各種各樣的工具和插件,比如Eclipse、IDEA、Maven等等。?
官方網站:TestNG - Welcome
5.JUnit?
JUnit是一個為Java編程語言設計的單元測試框架。 JUnit為測試驅動開發框架的發展發揮了重要作用。它是現在被統稱為xUnit的單元測試框架大家庭的組成成員之一,源于SUnit。 在編譯時,JUnit可以連接作為JAR,用于編寫可重復的測試。
?官方網站:JUnit - About
6.Powermock?
PowerMock是一款支持單元測試源代碼的Java框架。雖然PowerMock可以作為Mocking框架,例如Mockito和EasyMock的擴展而運行,但是它具備了更強大的能力。PowerMock利用自定義的類加載器和字節碼操縱器,來確保靜態方法的模擬、靜態初始化的刪除、函數構造、最終的類和方法以及私有方法。它的主要目的是通過最少的方法和注釋來擴展現有的API,以獲得額外的功能。
7.Cucumber
Cucumber 是 BDD 模式下實現可執行規范(Executable Specifications)的開源工具,但是它的使命并不局限于做自動化驗收測試,更加重要的在于其能夠在團隊成員之間構建統一的交流基礎(feature 文件)、規范交流用語(Domain Specific Language)、提高各個利益相關方(Business Stakeholders)溝通效率和效果,從而達到提升產品質量、做成客戶期望得到的產品這一最終目標。
官方網站:Cucumber
大家平時都喜歡用什么測試工具和框架,可以在評論區進行分享。