测试是应用程序生命周期里至关重要的一步,应用程序在进行最后的部署之前,需要通过测试来确保它的负载管理能力以及在特殊情况下的工作条件和工作加载情况。
网络上许多Java测试工具和框架,然而真正经得起时间和实践考验的不多,本文例举了8个超实用的Java测试框架和库,并且得到了测试人员和QA团队的广泛使用。
Java入门
如果你才刚开始接触Java世界,那么要做的第一件事情是,安装JDK——Java Development Kit(Java开发工具包),它自带有Java Runtime Environment(JRE)和JVM(Java运行时环境)。它能让你在自己的电脑上编译、运行、测试你的Java程序。
此外,你还需要IDE(集成开发环境)。选择有很多,如IntelliJ、Eclipse和NetBeans。
想要提高你的自动化测试技术?下面我们来了解8 个优秀的测试框架和库,以及它们常见用法的概述。
JUnit
JUnit 无须赘述,即便是小白,可能也已经听说过它,你可以使用它编写 Java 代码的单元测试。
几乎所有主流 IDE,例如 Eclipse,NetBeans 和 IntelliJ,都集成了 JUnit,可以直接在这些IDE中编写和运行单元测试。
大多数人仍在使用 JUnit 4,即使 JUnit 5 已经发布,它很可能是今年下一个热点。通过 JUnit 5,可以将 JUnit 同时应用于单元测试和集成测试,并且它还支持 Java 8 的特性。
REST Assured
用 Java 语言测试和验证 REST 服务,要难于 Groovy 这类动态语言。
REST Assured 将这类语言的易用性带入了 Java 领域,是一个优秀的 REST API 的集成测试工具。
Selenium
Selenium 很可能是最流行的 Java UI 测试工具了,它可以让你在不必启动浏览器的情况下测试 JSP 页面。
你可以使用 JUnit 和 Selenium 来测试 Web 程序的界面,它甚至允许你编写 Web 应用程序的验收测试。
TestNG
TestNG 是一个测试框架,其灵感来自 JUnit 和 NUnit,但同时引入了一些新的功能,使其功能更强大,使用更方便。例如可以使用注解,在任意大的线程池中,配置各种可用策略进行测试(例如所有方法都在自己的线程中,每一个测试类使用一个线程等)。
因为 TestNG 使用 JUnit 4 的注解,同时又集成了 HAMCSTREST 匹配器,它与 JUnit 的差异已经减小了,但两者如何选择,这取决于你。
Cucumber
Cucumber 是另一个重要的自动化集成测试工具,但与其它同类别的工具不同的是它能够针对规格文档进行自动化测试。
Cucumber 将规格文档和测试文档合成整个动态文档,同时 Cucumber 自动测试这个文档,使测试规范始终保持在最新版本。
Spring Test
Spring MVC 自带一个很有用的测试框架,它可以在不引入 Web 容器的情况下进行深入测试。
Spring Test 是为 Spring 程序编写自动化测试的最有用的库之一。为了给 Spring 驱动的应用程序(包括 MVC 控制器在内),编写单元测试和集成测试,Spring Test 提供了一流的支持。
另外,Spring Test DbUnit 集成了 Spring Test 框架与 DbUnit;Spring Test MVC HtmlUnit 集成了Spring Test MVC 框架和 HtmlUnit。
通过使用这些工具,你可以轻松地自动测试 Spring MVC 应用程序。
DBUnit
数据库是许多 Java 应用程序,包括核心 Java 和 Web 应用程序中不可或缺的部分,也有可能是单元测试的最大障碍。
在进行集成测试时,连接开发环境或用户验收测试的数据库并不可靠,因为任何人都可以更改数据模式和数据本身,例如表和存储过程等,这会导致自动化集成测试失败。
DbUnit 是一个 JUnit 扩展,每次集成测试前,将数据库初始化成已知状态,确保数据库存储正确的数据。
DbUnit 自身还存在着一些问题,但它是一个非常有用的工具,因为它可以帮助我们分离测试数据与测试代码。
Robot 框架
Robot 框架是一个基于 Python 的通用测试自动化框架,用于验收测试和验收测试驱动开发。
它是一个由关键字驱动的,使用表格测试数据语法的测试框架,可以用来测试那些涉及多种技术和接口的分布式异构应用。
结论
以上列举了几个超实用的Java测试工具,框架和库。
还有很多库没有包括在这个列表中,例如 AssertJ 和 Hamcrest,它们可以帮助你写出漂亮且流畅的测试,但学习需要一步步来。
首先,学习一个可以应用于日常工作的工具或库。 例如,如果你正在使用 Java UI,那么首先应该学习 Selenium,这样你可以有更多时间专注在这个工具上。
原文 http://blog.sina.com.cn/s/blog_679bde160102xhei.html