2010年6月12日 星期六

Java 開源測試工具介紹

http://www.open-open.com/43.htm

JUnit

JUnit 是由 Erich Gamma 和 Kent Beck 編寫的一個回歸測試框架(regression testing framework)。Junit測試是程序員測試,即所謂白盒測試,因為程序員知道被測試的軟件如何(How)完成功能和完成什麼樣(What)的功 能。Junit是一套框架,繼承TestCase類,就可以用Junit進行自動測試了。

更多JUnit信息

Cactus

Cactus 是一個基於JUnit框架的簡單測試框架,用來單元測試服務端Java代碼。Cactus框架的主要目標是能夠單元測試服務端的使用Servlet對象的 Java方法如HttpServletRequest,HttpServletResponse,HttpSession等

更多Cactus 信息

Abbot

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

更多Abbot信息

JUnitPerf

Junitperf實際是junit的一個decorator,通過編寫用於junitperf的單元測試,我們也可使測試過程自動化。

更多JUnitPerf信息

DbUnit

DbUnit是為數據庫驅動的項目提供的一個對JUnit 的擴展,除了提供一些常用功能,它可以將你的數據庫置於一個測試輪迴之間的狀態。

更多DbUnit信息

Mockrunner

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

更多Mockrunner信息

DBMonster

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

更多DBMonster信息

MockEJB

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

更多MockEJB信息

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對象測試框架。

更多StrutsTestCase信息

JFCUnit

JFCUnit使得你能夠為Java偏移應用程序編寫測試例子。它為從用代碼打開的窗口上獲得句柄提供了支持;為在一個部件層次定位部件提供支持;為在部件中發起事件(例如按一個按鈕)以及以線程安全方式處理部件測試提供支持。

更多JFCUnit信息

JTestCase

JTestCase 使用XML文件來組織多測試案例數據,聲明條件(操作和期望的結果),提供了一套易於使用的方法來檢索XML中的測試案例,按照數據文件的定義來聲明結果。

更多JTestCase信息

SQLUnit

SQLUnit是一個單元測試框架,用於對數據庫存儲過程進行加歸測試。用 Java/JUnit/XML開發。

更多SQLUnit信息

JTR

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

更多JTR信息

Marathon

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

更多Marathon信息

TestNG

TestNG是根據JUnit 和 NUnit思想而構建的一個測試框架,但是TestNG增加了許多新的功能使得它變得更加強大與容易使用比如:
*支持JSR 175註釋(JDK 1.4利用JavaDoc註釋同樣也支持)
*靈活的Test配置
*支持默認的runtime和logging JDK功能
*強大的執行模型(不再TestSuite)
*支持獨立的測試方法。

更多TestNG信息

Surrogate Test framework

Surrogate Test framework是一個值得稱讚單元測試框架,特別適合於大型,複雜Java系統的單元測試。這個框架能與JUnit,MockEJB和各種支持模擬對象(mock object )的測試工具無縫給合。這個框架基於AspectJ技術。

更多Surrogate Test framework信息

MockCreator

MockCreator可以為給定的interface或class生成模擬對象(Mock object)的源碼。

更多MockCreator信息

jMock

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

更多jMock信息

EasyMock

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

更多EasyMock信息

Grinder

Grinder是一個開源的Java負載測試框架,它通過很多負載注射器來為分佈式測試提供了便利。
  • 支持用於執行測試腳本的Jython腳本引擎
  • HTTP測試可通過HTTP代理進行管理。

更多Grinder信息

XMLUnit

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

更多XMLUnit信息

Jameleon

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

更多Jameleon信息

J2MEUnit

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

更多J2MEUnit信息

Jetif

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

更多Jetif信息

GroboUtils

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

更多GroboUtils信息

Testare

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

更多Testare信息

MockLib

MockLib是一個很小的包所以可容易地動態創建一個模擬對象.你可以從模擬的系統中拋出異常來確保你的系統能夠正確處理錯誤.它同樣也是一個線程安全的模擬對象庫.

更多MockLib信息

JellyUnit

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

更多JellyUnit信息

Pisces

這個項目繼承於JUnit目的是提供一個分佈式的測試環境.它給開發者/測試人員一個運行遠程JUnits和複雜測試案例的能力,這個案例由幾個並行運行的遠程JUnit測試組成。

更多Pisces信息

JUnitEE

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

更多JUnitEE信息


XTest

XTest是一個新的測試框架,它主要是為NetBeans IDE提供測試功能而開發的.但它也可以用於測試其它Java產品.XTest是基於Ant的,這就意味著它允許用戶使用所有Ant的tasks.

更多XTest信息

UISpec4J

UISpec4J 是專門用於Swing應用程序單元測試的一個開源組件,它構建在JUnit測試套件的基礎之上.UISpec4J讓Java GUI測試變得很簡單.它的特殊之處在於它的APIs設計成儘可能地隱藏Swing的複雜性,因此易於測試腳本的讀與寫.以下這它的簡單例子:
public void testContacts() {
Table contacts = getMainWindow().getTable();
contacts.assertContentEquals(new Object[][]{
{"John", "12", Boolean.FALSE},
{"Sylvia", "43", Boolean.TRUE},
{"Bill", "31", Boolean.FALSE}
});
}

更多UISpec4J信息

iValidator

iValidator是一個基於XML的方案自動測試與複雜環境中集成測試的框架。它的特性包括:單元測試的可重複使用性,代碼與數據分離,提供Eclipse插件,支持所有測試levels等。

更多iValidator信息

Jeté

Jeté是一個系統集成測試框架。它讓系統測試變得更容易並且採用非常易於理解與足夠靈活的方式來測試現存的系統。這是因為Jeté:
- 基於XML(Spring上下文文件)的系統測試定義文件,一個系統測試的定義是由在這些文件中定義的幾個action和對每一個action定義的幾個validators所組成。由於使用Spring context文件作為測試定義文件可把現存的POJOs無縫合線的結合到系統測試框架中;
- 擴展了 JUnit,DbUnitHttpUnit的基本功能來使用已知的測試概念。
- 集成了JUnit、Ant提供測試狀態的圖形化報告。

更多Jeté信息

MockCentral

MockCentral提供一種利用mock對象進行測試的新方式。它把mock對象定義在測試代碼之外的XML文件中並允許開發人員創建,訪問這些mock對象,這能夠讓測試案例變得簡潔並有利於組織和復用mock對象。

更多MockCentral信息

STclass

STclass 是一個基於Contract(由於B. Meyer在Design by Contract:合約設計方式中定義)的單元測試框架,它是JUnit的一個克隆,但是可與JUnit相匹敵。該框架能夠把測試結果生成XML的報表格 式,然後加工處理成漂亮的HTML報表。STclass集成JIP剖析器,可以在測試期間進行statisitic與 profiling分析,並把結果加到HTML報表中。

更多STclass信息

SpringUnit

SpringUnit用於Java軟件單元和綜合測試的開源框架。它把Spring的依賴注入容器與JUnit的測試框架相結合來實現數據驅動測試。

更多SpringUnit信息

lattu

lattu是一個用於測試Eclipse RCP應用程序的框架。它能夠進行單元測試與功能測試。實質上,它是一個Eclipse插件提供適當的擴展來進行單元與確認測試。lattu使用JUnit來實單元測試,Abbot來實現GUI測試。

更多lattu信息

Unitils

Unitils 這個Java開源類包的目的是讓單元測試變得更加容易和可維護。Unitils構建在DBUnit與EasyMock項目之上並與JUnit和 TestNG相結合。支持數據庫測試,支持利用mock對象進行測試並提供與Spring和Hibernate相集成。Unitils設計成以一種高度可 配置和鬆散偶合的方式來添加這些服務到單元測試中。
在進行數據庫測試時能夠:
  • 自動維護和強制關閉單元測試數據庫(支持Oracle,Hsqldb,MySql,DB2),
  • 簡化單元測試數據庫連接的設置,
  • 簡化利用DBUnit測試數據的插入,
  • 簡化Hibernate session管理,
  • 自動測試與數據庫相映射的Hibernate映射對象。
    在利用Mock對象進行測試時能夠:
  • 簡化EasyMock mock對象創建,
  • 簡化mock對象注入,利用反射等式匹配EasyMock參數。
    在與Spring集成時易於把spring管理的bean注入到單元測試中,支持在單元測試中使用一個用Spring配置的Hibernate SessionFactory。
  • 更多Unitils信息

    Ejb3Unit

    Ejb3Unit 用於在容器外對EJB3實體(Entity)和會話(Session)Bean進行自動測試。 Ejb3Unit是JUnit的一個擴展並能對所有JEE或EJB3項目自動執行獨立junit測試。其脫離容器的方式能夠縮短構建-測試週期,因為不需 要容器部署。EJb3Unit默認使用一個內置的內存數據庫,但也可以指定自己定義的數據庫。

    更多Ejb3Unit信息

    p-unit

    p- unit是一款開放源碼的性能測試框架,和JUnit不同,JUnit 關注的是測試案例的正確性,而p-unit不僅關注測試案例的正確性,還收集測試案例的性能參數,默認情況下,p-unit收集測試案例的時間和內存消耗 情況,可以產生文件,圖片,和PDF格式的報表。此外,p-unit 還支持參數化測試,多線程測試以及不同Java 虛擬機性能之間的比較。

    更多p-unit信息

    JEasyTest

    JEasyTest是一個Eclipse IDE插件開發用於簡化那些難於用標準mock object框架進行單元測試的代碼,比如使用繼承關係的代碼。

    更多JEasyTest 信息

    FEST-Swing

    FEST- Swing是一個用於Swing GUI應用程序功能測試的java開源類庫。支持模擬用戶交互(鼠標操作和鍵盤輸入)。支持JDK中的所有Swing組件。提供簡潔、強大的API來創建 和維護GUI功能測試。支持在HTML測試報告中嵌入GUI測試失敗的截屏。能夠與JUnit或TestNG一起使用。

    更多FEST-Swing信息

    Jacareto

    Jacareto是一個動作捕捉與回放工具。你可以利用它來捕捉應用程序中的動作並在過後回放它們(就像macros)。Jacareto可以用於GUI測試,創建生動的操作示範和用戶操作行為分析。

    更多Jacareto信息

    Ripplet

    Ripplet 是一個強大,高可靠性,靈活的負載/壓力測試工具。它提供的功能包括:支持圖解測試設計並能夠清楚的概括負載描述。能夠有效地控制實際可行的性能負載包括 邏輯與數據流。能夠輕鬆地診斷出性能峰值與瓶頸。能夠快速、正確地評估系統的實際抗壓能力。能夠讓開發人員制定用於測試產品在實際運行環境下執行情況的測 試計劃並生成測試報告。
    server_review.jpg