java开源测试工具大汇总
Java 开源测试工具大汇总
在 Java 开发生态中,选择合适的测试工具对于保证代码质量至关重要。以下汇总了多款经典的开源测试工具,涵盖单元测试、服务端测试、GUI 测试、数据库测试及性能测试等多个领域。
核心单元测试框架
- JUnit
JUnit 是由 Erich Gamma 和 Kent Beck 编写的回归测试框架(Regression Testing Framework)。JUnit 测试属于白盒测试,主要由程序员编写,因为程序员清楚被测试软件如何(How)完成功能以及完成什么样(What)的功能。JUnit 是一套框架,继承TestCase类即可进行自动测试。
http://www.junit.org/ TestNG
TestNG 是根据 JUnit 和 NUnit 思想构建的测试框架,但增加了许多新功能,使其更强大且易用:- 支持 JSR 175 注释(JDK 1.4 利用 JavaDoc 注释同样支持)
- 灵活的测试配置
- 支持默认的 runtime 和 logging JDK 功能
- 强大的执行模型(不再依赖 TestSuite)
- 支持独立的测试方法
http://testng.org/
- Jetif
Jetif 是一个用纯 Java 实现的回归测试框架。它为 Java 程序单元测试以及功能测试提供了一个简单且可伸缩的架构,适用于个人或企业级开发。它易于使用且功能强大,拥有一些企业级测试的重要功能。Jetif 来源于 JUnit、JTestCase 以及 TestNG 的启发,有几个基本概念直接来自于 JUnit(如断言机制、Test Listener 概念),因此从 JUnit 转到 Jetif 非常容易。
http://jetif.sourceforge.net/ - JTestCase
JTestCase 使用 XML 文件来组织多测试案例数据,声明条件(操作和期望的结果),提供了一套易于使用的方法来检索 XML 中的测试案例,按照数据文件的定义来声明结果。
http://jtestcase.sourceforge.net/ - GroboUtils
GroboUtils 使得扩展 Java 测试变得可能。它包括用在 Java 不同方面测试的多个子项目。在 GroboUtils 中最常被用到的工具是:多线程测试(multi-threaded tests)、整体单元测试(hierarchial unit tests)、代码覆盖工具(code coverage tool)。
http://groboutils.sourceforge.net/ - Surrogate Test framework
Surrogate Test framework 是一个值得称赞的单元测试框架,特别适合于大型、复杂 Java 系统的单元测试。这个框架能与 JUnit、MockEJB 和各种支持模拟对象(Mock Object)的测试工具无缝结合。这个框架基于 AspectJ 技术。
http://surrogate.sourceforge.net
服务端与 EE 组件测试
- Cactus
Cactus 是一个基于 JUnit 框架的简单测试框架,用来单元测试服务端 Java 代码。Cactus 框架的主要目标是能够单元测试服务端的使用 Servlet 对象的 Java 方法,如HttpServletRequest、HttpServletResponse、HttpSession等。
http://jakarta.apache.org/cactus/ - MockEJB
MockEJB 是一个不需要 EJB 容器就能运行 EJB 并进行测试的轻量级框架。
http://mockejb.sourceforge.net/ - StrutsTestCase
StrutsTestCase 是 Junit TestCase 类的扩展,提供基于 Struts 框架的代码测试。StrutsTestCase 同时提供 Mock 对象方法和 Cactus 方法用来实际运行 Struts ActionServlet,你可以通过运行 servlet 引擎来测试。因为 StrutsTestCase 使用 ActionServlet 控制器来测试你的代码,因此你不仅可以测试 Action 对象的实现,而且可以测试 mappings、form beans 以及 forwards 声明。StrutsTestCase 不启动 servlet 容器来测试 struts 应用程序(容器外测试)也属于 Mock 对象测试,但是与 EasyMock 不同的是,EasyMock 是提供了创建 Mock 对象的 API,而 StrutsTestCase 则是专门负责测试 Struts 应用程序的 Mock 对象测试框架。
http://strutstestcase.sourceforge.net/ - Mockrunner
Mockrunner 用在 J2EE 环境中进行应用程序的单元测试。它不仅支持 Struts actions、servlets、过滤器和标签类,还包括一个 JDBC 和一个 JMS 测试框架,可以用于测试基于 EJB 的应用程序。
http://mockrunner.sourceforge.net/index.html - JTR (Java Test Runner)
JTR 是一个开源的基于反转控制(IOC)的 J2EE 测试框架。它允许你构建复杂的 J2EE 测试套件(Test Suites)并连到应用服务器执行测试,可以包括多个测试实例。JTR 的 license 是 GPL 协议。
http://jtrunner.sourceforge.net/ - Testare
TESTARE 是用来简化分布式应用程序(比如:在 SERVLETS、JMS listeners、CORBA ORBs 或 RMI 环境下)测试开发过程的一个测试框架。
https://testare.dev.java.net/
界面 (GUI) 测试工具
- Abbot
Abbot 是一个用来测试 Java GUIs 的框架。用简单的基于 XML 的脚本或者 Java 代码,你就可以开始一个 GUI 测试。
http://abbot.sourceforge.net/ - JFCUnit
JFCUnit 使得你能够为 Java 偏移应用程序编写测试例子。它为从用代码打开的窗口上获得句柄提供了支持;为在一个部件层次定位部件提供支持;为在部件中发起事件(例如按一个按钮)以及以线程安全方式处理部件测试提供支持。
http://jfcunit.sourceforge.net/ - Marathon
Marathon 是一个针对使用 Java/Swing 开发 GUI 应用程序的测试框架,它由 recorder、runner 和 editor 组成,测试脚本是 Python 代码。Marathon 的焦点是放在最终用户的测试上。
http://marathonman.sourceforge.net - Jameleon
Jameleon 一个自动化测试工具。它被用来测试各种各样的应用程序,所以它被设计成插件模式。为了使整个测试过程变得简单,Jameleon 提供了一个 GUI,因此 Jameleon 实现了一个 Swing 插件。
http://jameleon.sourceforge.net/index.html
数据库测试工具
- DbUnit
DbUnit 是为数据库驱动的项目提供的一个对 JUnit 的扩展,除了提供一些常用功能,它可以将你的数据库置于一个测试轮回之间的状态。
http://dbunit.sourceforge.net/ - DBMonster
DBMonster 是一个用生成随机数据来测试 SQL 数据库的压力测试工具。
http://dbmonster.kernelpanic.pl/ - SQLUnit
SQLUnit 是一个单元测试框架,用于对数据库存储过程进行回归测试。用 Java/JUnit/XML 开发。
http://sqlunit.sourceforge.net
Mock 对象与模拟测试
- EasyMock
EasyMock 为 Mock Objects 提供接口并在 JUnit 测试中利用 Java 的 proxy 设计模式生成它们的实例。EasyMock 最适合于测试驱动开发。
http://www.easymock.org/ - jMock
jMock 利用 Mock Objects 思想来对 Java Code 进行测试。jMock 具有以下特点:容易扩展,让你快速简单地定义 Mock Objects,因此不必打破程序间的关联,让你定义灵活的超越对象之间交互作用而带来测试局限,减少你测试地脆弱性。
http://www.jmock.org/ - MockCreator
MockCreator 可以为给定的 interface 或 class 生成模拟对象(Mock Object)的源码。
http://mockcreator.sourceforge.net/
性能与负载测试
- JUnitPerf
JUnitPerf 实际是 JUnit 的一个 decorator,通过编写用于 JUnitPerf 的单元测试,我们也可使测试过程自动化。
http://www.clarkware.com/software/JUnitPerf.html - The Grinder
The Grinder 是一个负载测试框架。在 BSD 开源协议下免费使用。
http://grinder.sourceforge.net/
其他专用工具
- XMLUnit
XMLUnit 不仅有 Java 版本的还有 .Net 版本的。Java 开发的 XMLUnit 提供了两个 JUnit 扩展类XMLAssert和XMLTestCase,和一组支持的类。这些类可以用来比较两张 XML 之间的不同之处,展示 XML 利用 XSLT 来,校验 XML,求得 XPath 表达式在 XML 中的值,遍历 XML 中的某一节点利 DOM 展开。
http://xmlunit.sourceforge.net/ - J2MEUnit
J2MEUnit 是应用在 J2ME 应用程序的一个单元测试框架。它基于 JUnit。
http://j2meunit.sourceforge.net/
本文转自: http://joerong666.javaeye.com/blog/325997
说明: 本文汇总的工具多为早期 Java 生态产物(如 Struts、J2ME、EJB 相关工具),部分项目可能已停止维护或不再适用于现代 Java 版本(如 Java 8/11/17+)。在实际选型时,请参考各工具官方文档确认最新兼容性与替代方案。
版权声明:本文为原创文章,版权归 戴老师的博客 所有,转载请联系博主获得授权。
本文地址:https://1diff.fun/archives/java-kai-yuan-ce-shi-gong-ju-da-hui-zong.html
如果对本文有什么问题或疑问都可以在评论区留言,我看到后会尽量解答。