自動化測試可以快速自動完成大量測試用例,節(jié)約巨大的人工測試成本;同時它需要擁有專業(yè)開發(fā)技能的人才能完成開發(fā),且需要大量時間進(jìn)行維護(hù)(在需求經(jīng)常變化的情況下),所以大部分具有很好開發(fā)技能的人員不是很愿意編寫自動化用例。但由于軟件規(guī)模的高速增長,人力資源的逐步稀缺,自動化測試已是勢在必行。
下面是我精選的7個Java測試工具和框架。
1.Arquillian?
Arquillian是JVM一個高度創(chuàng)新性和可擴(kuò)展的測試平臺,支持Java開發(fā)人員輕松創(chuàng)建自動化集合的,功能性的和驗(yàn)收的測試。Arquillian允許在運(yùn)行時間執(zhí)行測試。Arquillian可以用來管理單個或多個容器的生命周期,捆扎測試用例,從屬類和資源。它還能夠部署歸檔到容器中,在容器中執(zhí)行測試、捕獲結(jié)果,并創(chuàng)建報告。 Arquillian集成了常見的測試框架,如JUnit 4、TestNG 5,并允許使用現(xiàn)有的IDE發(fā)布測試,并且由于其模塊化的設(shè)計使得能夠運(yùn)行Ant和Maven測試插件。

官方網(wǎng)站:Arquillian · Write Real Tests
2.JTest?
JTest也被稱為“Parasoft JTest”,是一款通過Parasoft制作的自動化的Java軟件測試和靜態(tài)分析軟件。JTest包含的功能有:單元測試情況下的生成和執(zhí)行、靜態(tài)代碼分析、數(shù)據(jù)流的靜態(tài)分析、度量分析、回歸測試、運(yùn)行時錯誤檢測。 此外,它還具備了同行代碼審查流程自動化和運(yùn)行時錯誤檢測的功能,如:競態(tài)條件、異常、資源和內(nèi)存泄漏、安全漏洞攻擊。

官方網(wǎng)站:Jtest - Parasoft's Automated Java Testing Tool
3.The Grinder?
“The Grinder”是一個Java負(fù)載測試框架,不但運(yùn)行簡單,而且其分布式測試采用了許多負(fù)載注入機(jī)器。只要有Java API,The Grinder就可以負(fù)載測試。這包括HTTP Web服務(wù)器、SOAP和REST Web服務(wù)器、應(yīng)用程序服務(wù)器、以及用強(qiáng)大的Jython和Clojure語言寫的包含了自定義協(xié)議的測試腳本。The Grinder的GUI控制臺允許對多個負(fù)載注射器進(jìn)行監(jiān)測和控制,并自動管理客戶端連接和cookies、SSL、代理感知和節(jié)流連接。 The Grinder在BSD風(fēng)格的開源許可下是免費(fèi)的。?

官方網(wǎng)站:Downloading The Grinder
4.TestNG?
TestNG是一款為Java編程語言設(shè)計的測試框架,靈感來自于JUnit和NUnit。 TestNG的主要功能是覆蓋范圍更廣的測試分類,如單元、功能性、端到端,一體化等。它還有一些新的功能,可以使之更強(qiáng)大和更容易使用,如:注解、具備大型線程池各種策略的運(yùn)行測試、多線程的代碼測試、靈活的測試配置、參數(shù)化數(shù)據(jù)驅(qū)動的測試支持,等等。 TestNG支持各種各樣的工具和插件,比如Eclipse、IDEA、Maven等等。?

官方網(wǎng)站:TestNG - Welcome
5.JUnit?
JUnit是一個為Java編程語言設(shè)計的單元測試框架。 JUnit為測試驅(qū)動開發(fā)框架的發(fā)展發(fā)揮了重要作用。它是現(xiàn)在被統(tǒng)稱為xUnit的單元測試框架大家庭的組成成員之一,源于SUnit。 在編譯時,JUnit可以連接作為JAR,用于編寫可重復(fù)的測試。

?官方網(wǎng)站:JUnit - About
6.Powermock?
PowerMock是一款支持單元測試源代碼的Java框架。雖然PowerMock可以作為Mocking框架,例如Mockito和EasyMock的擴(kuò)展而運(yùn)行,但是它具備了更強(qiáng)大的能力。PowerMock利用自定義的類加載器和字節(jié)碼操縱器,來確保靜態(tài)方法的模擬、靜態(tài)初始化的刪除、函數(shù)構(gòu)造、最終的類和方法以及私有方法。它的主要目的是通過最少的方法和注釋來擴(kuò)展現(xiàn)有的API,以獲得額外的功能。
7.Cucumber
Cucumber 是 BDD 模式下實(shí)現(xiàn)可執(zhí)行規(guī)范(Executable Specifications)的開源工具,但是它的使命并不局限于做自動化驗(yàn)收測試,更加重要的在于其能夠在團(tuán)隊(duì)成員之間構(gòu)建統(tǒng)一的交流基礎(chǔ)(feature 文件)、規(guī)范交流用語(Domain Specific Language)、提高各個利益相關(guān)方(Business Stakeholders)溝通效率和效果,從而達(dá)到提升產(chǎn)品質(zhì)量、做成客戶期望得到的產(chǎn)品這一最終目標(biāo)。

官方網(wǎng)站:Cucumber
大家平時都喜歡用什么測試工具和框架,可以在評論區(qū)進(jìn)行分享。