澳门新葡萄京娱乐场 6

澳门新葡萄京娱乐场一文了解十大 Java 开发者必备测试框架!

本文由码农网 –
王国峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划!

澳门新葡萄京娱乐场 1

介绍10个出色的测试框架,工具和库,以提高您的自动化测试技能。

本文将为大家介绍8款超好用的Java测试工具和框架。

想要提升自己的自动化测试技能吗?本文将介绍10个优秀的 Java
测试框架和库,来提升你的自动化测试技能。以下为译文:最近,我写了很多面向
Java
开发者的文章,介绍了一些值得开发者学习的编程语言、库以及框架。面对多项技术能力,如果你的精力只够提升其中一项技能,那么我认为自动化测试技能是最值得你去提升的。测试是一门能够区分专业开发人员与业余开发人员的重要学科。这不在于你掌握TDD、BDD
或者其他一些测试方法,而是在最基础的层面,你是否能够编写测试代码来进行自动化测试。许多
Java
开发人员都会编写单元测试和集成测试代码,这些测试代码在构建时自动运行。开发者主要借助一些持续集成工具来编写测试代码,比如
Jenkins 或者
TeamCity。你是否对此充满疑虑:为什么程序员应该关注自动化测试?事实上,随着
DevOps
的出现和普及,自动化测试的重要性正在呈指数增长。公司通常更喜欢那些擅长编写单元测试的程序员,如果程序员还熟悉各种单元测试框架、库和工具那就更好了。比如
JUnit、Selenium、REST-Assured、Spock 框架等。作为一名 Java
开发者,我们需要从事各种截然不同的工作。比如,编写核心 Java 代码、创建
JSP 页面、编写 REST API、甚至编写 Groovy
脚本用于自动化构建。我们还需要了解不同的工具来进行自动化测试。例如,之前很长的一段时间我只知道
JUnit。后来我不得不测试 JSP 页面,当我了解了 Selenium
之后顿时豁然开朗。REST Assured 也一样,我通常使用 curl 指令测试我的REST
API ,它将 REST API
的单元测试提升到了一个新的级别。我认为一名优秀的程序员需要学会使用和利用工具,因此我经常利用空闲时间学习和探索各种新的工具和库,本文将展示一部分我所熟知的工具。在本文中,我将分享10个最好的工具、框架和库,以帮助
Java 开发人员在不同的 Java
项目中更好地执行单元测试和集成测试。JUnitJUnit
应该不需要过多介绍。哪怕你是一位 Java
初学者,我想你也应该听说过它,它能够让你为 Java
代码编写单元测试。几乎所有常用的 IDE,比如 Eclipse、NetBeans 和
IntelliJ,都能够集成 JUnit,这意味着开发者直接可以在这些 IDE
中编写并运行单元测试。目前大多数人仍然在使用 JUnit 4,事实上新的 JUnit 5
已经发布。你可以用 JUnit 进行单元测试和集成测试,此外,它还支持 Java 8
功能。REST Assured相比于 Groovy 这类动态语言,在 Java 中测试和验证
REST 服务更难。REST Assured 为 Java 带来了这些语言的简单性。这对于 REST
API 集成测试来说是一个很好的工具。SeleniumSelenium 应该是最受欢迎的
Java UI 测试工具,有了它,你不需要在浏览器中启动 JSP
页面即可对其进行测试。你可以使用 JUnit 和 Selenium 来测试 Web 应用程序
UI。还可以使用它进行 Web 应用程序验收测试。 TestNGTestNG
这款测试框架最早源于 JUnit 和 NUnit
的启发,但它在这两者的基础上引入了许多新的功能,其功能更强大,也更易于使用,提供了注解功能,支持在任意大型线程池中运行各种可用策略的测试。随着
JUnit 4 中注解功能的引入以及 Hamcrest 框架的整合,JUnit 4 和 TestNG
之间的差距已经很小。MockitoJava 有许多 Mock 框架,例如 PowerMock 和
JMock,但我个人更喜欢 Mockito,它具有简单的
API、优秀的文档以及大量示例。Mock
测试是现代单元测试的关键技术之一,开发者不需要依赖其他情况也可独立测试代码,因此我建议每个
Java 开发人员都应该学习 Mock 框架来与 JUnit 结合使用。我个人最喜欢的
Mock 框架是 Mockito,如果你喜欢的话,也可以了解一下 PowerMock或者
JMock。Spock 框架Spock 是一款用于 Java 和 Groovy
应用程序的测试和规范框架。它用 Groovy
编写,因此它具有很强的表现力,并且非常规范。使用 Spock
时,测试将变得更加易读易维护。此外,得益于它的 JUnit
运行器,Spock能够兼容大多数
IDE、构建工具和持续集成服务器。不过遗憾的是,线上讲述 Spock
框架的课程好像不多,“使用 Spock 进行 Java
测试”这本书倒是一个不错的学习资源。CucumberCucumber
是一款很好的自动化集成测试工具,与其他同类工具相比,它的规范功能是一大特色。Cucumber
将规范和测试文档合并为一个文档,由于文档也会被 Cucumber
自动测试,因此规范文档始终会被更新为最新版本。Spring 测试Spring MVC
自带了一个非常有用的测试框架,可以在不涉及 Web
容器的情况下进行深入测试。这个是一个非常有用的库,可以为 Spring
应用程序编写自动化测试。它为 Spring
应用程序编写单元和集成测试提供了强有力的支持。还有一个 Spring Test
DbUnit,它将 Spring 测试框架与 DbUnit 以及 HtmlUnit
集成在了一起。使用这些工具,你可以轻松完成 Spring MVC
应用程序的自动化测试。DBUnit对于大多数的 Java 应用程序,不管是核心
Java 程序还是 Java Web
应用,数据库都是其不可或缺的重要组成部分,并且数据库还很可能是单元测试的最大障碍。连接到
Dev 或者 UAT
数据库进行集成测试是不可靠的,因为任何人都可以更改数据和模式,比如表和存储过程,这都会导致自动化集成测试的失败。DbUnit
是 JUnit
的扩展,在每次集成测试之前它可以将数据库初始化为已知状态,从而确保数据库包含正确的数据。DbUnit
是一个非常有用的工具,它可以帮助我们将测试数据和测试代码分开。Robot
框架
Robot 框架是一个基于 Python
的通用自动化测试框架,主要用于验收测试以及验收测试驱动开发。它采用表格测试数据语法,是一个关键字驱动的测试框架。分布式异构应用程序的验证往往需要多种技术和接口,非常适合用
Robot 来测试。总结以上就是本文介绍的所有针对 Java
开发者的单元测试以及集成测试的工具、框架和库。还有更多的库并没有包含在这个列表中,例如
AssertJ 和
Hamcrest,它们可以帮助你写出漂亮且流畅的测试程序。面对如此多的工具,你应当先学习那些与你日常工作最相关的。例如,如果你的工作主要涉及
Java UI,那么你应该最先学习
Selenium,然后再学习其他工具来扩展和提升自己。类似的,如果你正在使用
REST API,那么最好先学习 REST Assured。如果你主要从事核心 Java
工作,那么你最先学习的应该是 JUnit 5。引用原文:作者:Javin
Paul译者:安翔责编:言则

澳门新葡萄京娱乐场 2

Java入门

如果你才刚开始接触Java世界,那么要做的第一件事情是,安装JDK——Java
Development Kit(澳门新葡萄京娱乐场 ,Java开发工具包),它自带有Java
Runtime
Environment(JRE)和JVM(Java运行时环境)。它能让你在自己的电脑上编译、运行、测试你的Java程序。

此外,你还需要IDE(集成开发环境)。选择有很多,如IntelliJ、Eclipse和NetBeans。

最近,我写了一些关于Java开发人员今年应该学习什么的文章,但如果你只有一件事需要改进或学习,那么那必须是你的自动化测试技能。

Java测试工具

下面是我精选的8个最棒的Java测试工具和框架。

测试是将专业开发人员与业余开发人员分开的学科之一。它不是关注TDD,BDD或任何测试方法,但在最低级别,您必须编写代码来自动测试代码。

1.Arquillian

Arquillian是JVM一个高度创新性和可扩展的测试平台,支持Java开发人员轻松创建自动化集合的,功能性的和验收的测试。Arquillian允许在运行时间执行测试。Arquillian可以用来管理单个或多个容器的生命周期,捆扎测试用例,从属类和资源。它还能够部署归档到容器中,在容器中执行测试、捕获结果,并创建报告。

Arquillian集成了常见的测试框架,如JUnit 4、TestNG
5,并允许使用现有的IDE发布测试,并且由于其模块化的设计使得能够运行Ant和Maven测试插件。

澳门新葡萄京娱乐场 3

官方网站:

许多Java开发人员编写在构建期间自动运行的 和集成测试,主要是使用
或TeamCity 等持续集成工具。

2.JTest

JTest也被称为“Parasoft
JTest”,是一款通过Parasoft制作的自动化的Java软件测试和静态分析软件。JTest包含的功能有:单元测试情况下的生成和执行、静态代码分析、数据流的静态分析、度量分析、回归测试、运行时错误检测。

此外,它还具备了同行代码审查流程自动化和运行时错误检测的功能,如:竞态条件、异常、资源和内存泄漏、安全漏洞攻击。

澳门新葡萄京娱乐场 4

官方网站:

如果你们中的一些人想知道为什么程序员应该专注于自动化测试,那么让我告诉你,由于更多的意识和DevOps的出现,自动化测试的重要性呈指数级增长。

3.The Grinder

“The
Grinder”是一个Java负载测试框架,不但运行简单,而且其分布式测试采用了许多负载注入机器。只要有Java
API,The Grinder就可以负载测试。这包括HTTP Web服务器、SOAP和REST
Web服务器、应用程序服务器、以及用强大的Jython和Clojure语言写的包含了自定义协议的测试脚本。The
Grinder的GUI控制台允许对多个负载注射器进行监测和控制,并自动管理客户端连接和cookies、SSL、代理感知和节流连接。

The Grinder在BSD风格的开源许可下是免费的。

官方网站:

公司通常更喜欢擅长编写单元测试并且熟悉各种单元测试框架,库和工具的程序员,例如
, ,REST-Assured, 等。

4.TestNG

TestNG是一款为Java编程语言设计的测试框架,灵感来自于JUnit和NUnit。
TestNG的主要功能是覆盖范围更广的测试分类,如单元、功能性、端到端,一体化等。它还有一些新的功能,可以使之更强大和更容易使用,如:注解、具备大型线程池各种策略的运行测试、多线程的代码测试、灵活的测试配置、参数化数据驱动的测试支持,等等。

TestNG支持各种各样的工具和插件,比如Eclipse、IDEA、Maven等等。

官方网站:

作为Java开发人员,我们处理非常不同的领域,从编写核心Java代码到创建JSP页面,编写
,有时甚至创建用于构建自动化的Groovy脚本。这就是为什么我们还需要了解我们可以用来自动化测试的不同工具。

5.JUnit的

JUnit是一个为Java编程语言设计的单元测试框架。
JUnit为测试驱动开发框架的发展发挥了重要作用。它是现在被统称为xUnit的单元测试框架大家庭的组成成员之一,源于SUnit。

在编译时,JUnit可以连接作为JAR,用于编写可重复的测试。

官方网站:

例如,我只知道JUnit很长一段时间,但是当我不得不测试我的JSP页面时,在找到Selenium之前我一无所知。REST
Assured也是如此,因为我通常使用 测试我的REST API ,但REST Assured将REST
API的单元测试提升到另一个级别。

6.JWalk

JWalk是一个为Java编程语言设计的单元测试工具包。它可支持被称为懒人系统单元测试的测试模式。JWalkTester工具能执行由程序员提供的编译过的任意Java类中的任何测试。通过静态和动态分析,以及提示后面的程序员,它能够使得测试符合惰性规范。

澳门新葡萄京娱乐场 5

官方网站:

10个适用于Java程序员的有用单元和集成测试工具

7.Mockito

Mockito是一款在MIT License可用的支持Java的开源测试框架。Mockito允许程序员使用自动化的单元测试创建和测试双对象(模拟对象),以达到测试驱动开发(TDD)和行为驱动开发(BDD)的目的。

澳门新葡萄京娱乐场 6

官方网站:

由于我相信程序员和他们的工具一样好,我总是在空闲时间尝试学习和探索新的工具和库,这个列表是该研究的一部分。

8.Powermock

PowerMock是一款支持单元测试源代码的Java框架。虽然PowerMock可以作为Mocking框架,例如Mockito和EasyMock的扩展而运行,但是它具备了更强大的能力。PowerMock利用自定义的类加载器和字节码操纵器,来确保静态方法的模拟、静态初始化的删除、函数构造、最终的类和方法以及私有方法。它的主要目的是通过最少的方法和注释来扩展现有的API,以获得额外的功能。

它在开源Apache License 2.0条件下可用,也可以在Powermock Google Code
site找到它.

官方网站:

希望本文能对你找寻适合自己的Java测试工具和框架有所帮助。

那么你用的是什么工具来对代码进行测试的呢亲?

在本文中,我将分享10个最好的和必不可少的 ,
和库,它们可以帮助Java开发人员在各种Java项目上编写单元测试和集成测试。

1. JUnit

我不认为JUnit需要任何介绍。即使您是初学Java程序员,您也可能听说过它。它允许您为Java代码编写单元测试。

几乎所有主要的IDE都提供JUnit集成,这意味着您可以直接从这些IDE编写和运行单元测试。

我们大多数人仍在使用JUnit 4,但JUnit
5已经发布,可能是今年要看的下一个东西。您可以将JUnit用于单元测试和集成测试,它还支持Java
8功能。

2. REST Assured

在Java中测试和验证REST服务比在 等动态语言中更难。

REST Assured将使用这些语言的简单性带入了Java域。它是REST
API集成测试的绝佳工具。

3. Selenium

Selenium可能是最流行的Java UI测试工具,它允许您测试
而无需在浏览器中启动它们。

您可以使用JUnit和Selenium测试Web应用程序UI。它甚至允许您编写Web应用程序验收测试。

4. TestNG

TestNG是一个受JUnit和NUnit启发的测试框架,但引入了许多新功能,使其功能更强大,更易于使用,例如
,在任意大线程池中运行测试,并提供各种策略(所有方法都在自己的线程中,一个每个测试类的线程等)。

由于使用了JUnit
4中的注释并集成了Hamcrest匹配器,JUnit和TestNG之间的差距已经缩小,但这取决于您。

5.Mockito

Java类有许多模拟框架,例如PowerMock和JMock,但我个人喜欢
的简单API,很棒的文档和很多例子。

模拟是现代单元测试的基本技术之一,因为它允许您在没有任何依赖性的情况下单独测试代码,这就是为什么我鼓励每个Java开发人员与
一起学习模拟框架。

我最喜欢的模拟框架是Mockito,但如果你愿意,你也可以探索PowerMock或JMock。

6. Spock框架

Spock是 和
应用程序的另一个测试和规范框架。它是用Groovy编写的,这使它成为一种非常富有表现力和规范的规范语言。

当您使用Spock时,您的测试将变得更易读并且更易于维护,并且由于其JUnit运行程序,Spock与大多数IDE,构建工具和持续集成服务器兼容。

7. Cucumber

Cucumber是自动化集成测试的另一个很好的工具,但是它与同类别中的其他工具的不同之处在于它的规范功能。

Cucumber将规范和测试文档合并为一个统一的整体生活文档,由于它们将由Cucumber自动测试,因此您的规范始终是最新的。

8. Spring Test

Spring MVC带有一个非常有用的测试框架,允许在不涉及 情况下进行深入测试。

它是向Spring应用程序编写自动化测试的最有用的库之一。它为Spring驱动的应用程序(包括
编写单元和集成测试提供了一流的支持。

还有一个Spring Test DbUnit将Spring Test框架与DbUnit和Spring Test MVC
HtmlUnit集成在一起,它将Spring Test MVC框架与HtmlUnit集成在一起。

通过使用这些工具,您可以轻松地以自动方式测试 。

9. DBUnit

数据库是许多Java应用程序(核心Java和Web应用程序)不可或缺的一部分,可能是进行单元测试时的最大障碍。

连接到Dev或UAT数据库进行集成测试是不可靠的,因为任何人都可以更改数据和模式,例如表和
,这将导致自动集成测试失败。

DbUnit是一个JUnit扩展,可用于在每次集成测试之前将数据库初始化为已知状态,以确保数据库包含正确的数据。

DbUnit有自己的问题,但它是一个非常有用的工具,因为它可以帮助我们将测试数据创建与测试代码分开。

10. Robot框架

Robot Framework是一个基于
的通用测试自动化框架,用于验收测试和验收测试驱动开发。

它是一个关键字驱动的测试框架,使用表格测试数据语法。您可以使用它来测试分布式异构应用程序,其中验证需要涉及多种技术和接口。

结论

这就是Java开发人员的一些基本单元测试和集成测试工具,框架和库的全部内容。

我还没有列入更多的库,例如AssertJ和Hamcrest,它们可以帮助你编写漂亮和流畅的测试

  • 但是要慢慢来。

首先,学习一种可以在日常工作中使用的工具或库。例如,如果您正在使用Java
UI,那么您应该首先学习Selenium,因为那样您可以更多地关注这个工具。架构交流群:956058372,里面会分享一些资料

发表评论

电子邮件地址不会被公开。 必填项已用*标注