 常用的Java測試工具列表 

 JUnit 

JUnit是由 Erich Gamma 和 Kent Beck 編寫的一個迴歸測試框架（regression testing framework）。Junit測試是程式師測試，即所謂白盒測試，因為程式師知道被測試的軟體如何（How）完成功能和完成什麼樣（What）的功能。Junit是一套框架，繼承TestCase類，就可以用Junit進行自動測試了。 
 
 Cactus 
Cactus是一個基於JUnit框架的簡單測試框架，用來單元測試服務端JAVA代碼。Cactus框架的主要目標是能夠單元測試服務端的使用Servlet物件的JAVA方法如HttpServletRequest,HttpServletResponse,HttpSession等

 Abbot 
Abbot是一個用來測試JAVA GUIs的框架。用簡單的基於XML的腳本或者JAVA代碼，你就可以開始一個GUI。

  JUnitPerf 
Junitperf實際是junit的一個decorator，通過編寫用於junitperf的單元測試，我們也可使測試過程自動化。
 
   DbUnit  
DbUnit是為資料庫驅動的專案提供的一個對JUnit 的擴展，除了提供一些常用功能，它可以將你的資料庫置於一個測試輪回之間的狀態。 

 Mockrunner 
Mockrunner用在J2EE環境中進行應用程式的單元測試。它不僅支援Struts actions, servlets，篩檢程式和標籤類還包括一個JDBC和一個JMS測試框架，可以用於測試基於EJB的應用程式。

 DBMonster 
DBMonster是一個用生成亂數據來測試SQL資料庫的壓力測試工具。

 MockEJB 
MockEJB是一個不需要EJB容器就能運行EJB並進行測試的羽量級框架。

 StrutsTestCase 
StrutsTestCase 是Junit TestCase類的擴展，提供基於Struts框架的代碼測試。StrutsTestCase同時提供Mock 物件方法和Cactus方法用來實際運行Struts ActionServlet，你可以通過運行servlet引擎來測試。因為StrutsTestCase使用ActionServlet控制器來測試你的代碼，因此你不僅可以測試Action物件的實現，而且可以測試mappings，from beans以及forwards聲明。StrutsTestCase不啟動servlet容器來測試struts應用程式（容器外測試）也屬於Mock物件測試，但是與EasyMock不同的是，EasyMock是提供了創建Mock物件的API，而StrutsTest則是專門負責測試Struts應用程式的Mock物件測試框架。 

  JFCUnit 
JFCUnit使得你能夠為JAVA偏移應用程式編寫測試例子。它為從用代碼打開的視窗上獲得控制碼提供了支援；為在一個部件層次定位部件提供支援；為在部件中發起事件（例如按一個按鈕）以及以執行緒安全方式處理部件測試提供支援。

 JTestCase 
JTestCase 使用XML檔來組織多測試案例資料，聲明條件（操作和期望的結果），提供了一套便於使用的方法來檢索XML中的測試案例，按照資料檔案的定義來聲明結果。

 SQLUnit 
SQLUnit是一個單元測試框架，用於對資料庫預存程序進行加歸測試。用 JAVA/JUnit/XML開發。 

 JTR   
JTR (JAVA Test Runner)是一個開源的基於反轉控制(IOC)的J2EE測試框架。它允許你構建複雜的J2EE測試套件(Test Suites)並連到應用伺服器執行測試,可以包括多個測試實例。JTR的licensed是GPL協定。

 Marathon 
Marathon是一個針對使用JAVA/Swing開發GUI應用程式的測試框架，它由recorder, runner 和 editor組成，測試腳本是python代碼。Marathon的焦點是放在最終使用者的測試上。

 TestNG 
TestNG是根據JUnit 和 NUnit思想而構建的一個測試框架，但是TestNG增加了許多新的功能使得它變得更加強大與容易使用比如：
*支援JSR 175注釋（JDK 1.4利用JAVADoc注釋同樣也支援）
*靈活的Test配置
*支援預設的runtime和logging JDK功能
*強大的執行模型（不再TestSuite）
*支援獨立的測試方法。
 Surrogate Test framework 
Surrogate Test framework是一個值得稱讚單元測試框架，特別適合於大型，複雜JAVA系統的單元測試。這個框架能與JUnit,MockEJB和各種支援類比物件（mock object ）的測試控管無縫給合。這個框架基於AspectJ技術。

 MockCreator 
MockCreator可以為給定的interface或class生成類比物件（Mock object）的源碼。

 jMock 
jMock利用mock objects思想來對JAVA code進行測試。jMock具有以下特點:容易擴展，讓你快速簡單地定義mock objects,因此不必打破程式間的關聯，讓你定義靈活的超越物件之間交互作用而帶來測試局限，減少你測試地脆弱性。

 EasyMock 
EasyMock為Mock Objects提供介面並在JUnit測試中利用JAVA的proxy設計模式生成它們的實例。EasyMock最適合於測試驅動開發。

 The Grinder 
The Grinder是一個負載測試框架。在BSD開源協定下免費使用。

 XMLUnit
XMLUnit不僅有JAVA版本的還有.Net版本的。JAVA開發的XMLUnit提供了兩個JUnit 擴展類XMLAssert和XMLTestCase,和一組支援的類。這些類可以用來比較兩張XML之間的不同之處，展示XML利用XSLT來,校驗XML,求得XPath運算式在XML中的值,遍歷XML中的某一節點利DOM展開,

 Jameleon 
Jameleon一個自動化測試控管。它被用來測試各種各樣的應用程式，所以它被設計成外掛程式模式。為了使整個測試過程變得簡單Jameleon提供了一個GUI,因此Jameleon實現了一個Swing 外掛程式。

 J2MEUnit 
J2MEUnit是應用在J2ME應用程式的一個單元測試框架。它基於JUnit.

 Jetif 
Jetif是一個用純JAVA實現的迴歸測試框架。它為JAVA程式單元測試以及功能測試提供了一個簡單而且可 伸縮的架構，可以用於個人開發或企業級開發的測試。它容易使用，功能強大，而且擁有一些企業級測試的 重要功能。Jetif來源於JUnit, JTestCase以及TestNG的啟發，有幾個基本的概念直接來自于JUnit， 比如說斷言機制，Test Listener的概念，因此從JUnit轉到Jetif是非常容易的。

 GroboUtils
GroboUtils使得擴展JAVA測試變得可能。它包括用在JAVA不同方面測試的多個子專案。在GroboUtils中最常被到的工具是:多執行緒測試(multi-threaded tests),整體單元測試(hierarchial unit tests),代碼覆蓋工具(code coverage tool)。

 Testare 
TESTARE是用來簡化分散式應用程式(比如:在SERVLETS,JMS listeners, CORBA ORBs或RMI環境下)測試開發過程的一個測試框架.

 MockLib  
MockLib是一個很小的包所以可容易地動態創建一個類比物件.你可以從類比的系統中拋出異常來確保你的系統能夠正確處理錯誤.它同樣也是一個執行緒安全的類比物件程式庫.

 JellyUnit 
JellyUnit是一個基於Jelly的JUnit測試機制.它允許用Jelly腳本來完成單元測試.尤其是對於XML,XPath,SQL,HTTP,JMS和SOAP交互的測試特別有用.

 Pisces   
這個專案繼承于JUnit目的是提供一個分散式的測試環境.它給開發者/測試人員一個運行遠端JUnits和複雜測試案例的能力，這個案例由幾個並行運行的遠端JUnit測試組成。

 JUnitEE
JUnitEE是對JUnit的一個簡單擴展，可以支援在一個J2EE應用程式伺服器上執行標準的測試案例。它主要由一個把測試結果輸出為html的servlet組成。

