几十年来,JAVA一直是开发应用程序服务器端的首选编程语言 。尽管JUnit与开发人员一起帮助他们进行自动化单元测试,随着时间的推移和测试的发展,当自动化测试正在兴起时,许多开源框架已经开发出来,。在这里,我将讨论2019年用于使用Selenium WebDriver和Java执行测试自动化的前五大Java测试框架 。我还将重点介绍这些顶级Java测试框架的独特之处 。

文章插图
1. JUnit
Kent Beck和Erich Gamma开发的JUnit,它是xUnit的一个实例 。其背后的主要目的是使Java开发人员能够编写脚本并执行可重复的测试用例 。它通常用于测试小块代码 。您还可以通过将JUnit与Selenium WebDriver集成用于Java测试自动化来执行网站的自动化测试 。无论何时添加任何新代码,您都需要重新执行整个测试用例并确保没有破损 。
(1) 先决条件
该框架与Selenium WebDriver for Java高度兼容,原因是JUnit是一个基于Java的框架 。作为一些先决条件,您需要:
- 在计算机中安装最新版本的JDK 。
- 下载最新版本的JUnit并设置环境 。
- 熟悉面向对象编程语言(尤其是Java)中的应用程序开发 。
JUnit 有几个优点:
- 在测试驱动的环境中工作的开发人员发现它非常有用,因为他们被迫阅读代码并查找是否存在异常 。
- 早期检测到错误,从而产生更可靠的代码 。
- 开发更具可读性和无错误的代码可以起到增强信心的作用 。
- 使用最新版本的JUnit(版本4),可以轻松识别异常 。您甚至可以执行在旧版本的JUnit中编写的测试用例 。
- 您也可以将它与Java 5或以上版本一起使用 。
- 该框架无法执行依赖性测试 。这就是我们需要TestNG的地方 。
实现过程在两个框架中都是不同的 。此外,由于JUnit已经使用了很长时间,因此有更好的社区支持,并且它已被定义为使用Selenium WebDriver进行基于Java的应用程序的单元测试的标准 。虽然TestNG的用户很少,但社区非常庞大并且每天都在增长 。因此,我们可以得出结论,TestNG或JUnit之间对Java测试框架的选择完全取决于应用程序的性质和要求 。
2. JBehave
我们都知道行为驱动开发或BDD 。它是一种以透明的方式向业务用户描述验收测试的测试类型 。JBehave是另一个用于BDD测试的Java测试框架,主要用于Selenium WebDriver for Java 。引入JBehave背后的主要目标是让新手能够轻松理解并熟悉BDD 。它是一种设计理念,使应用程序的测试阶段更多地基于其行为 。
(1) 先决条件
使用JBehave的理想方法是与Eclipse集成 。为此,除了JDK1.7及更高版本以及Indigo上面的任何Eclipse IDE之外,您还需要几个jar文件,例如:
Junit-4.1.0.jar
Jbehave-core-3.8.jar
Commons-lang-2.4.jar
Paranamer-2.5.jar
Freemarker-2.3.9.jar
Org.apacje.commons.io.jar
Org.Apache.commons.collections.jar
Plexus-utils-1.1.jar
(2) JBehave的优点和缺点
与所有其他BDD测试框架一样,JBehave在许多方面也具有优势 。
- 通过在具有类似规范的不同项目上工作的不同开发团队之间实现更好的协调,实现行为驱动开发的最重要目的 。
- 由于规范具有类似的格式,项目经理和利益相关者可以更清楚地了解开发团队和QA团队的输出 。
- 由于JBehave具有推理和思考的细节,因此产品具有更好的规格 。
- JBehave使用半正式语言,它还有一个域词汇表,有助于在团队结构中保持一致的行为 。
- BDD测试工具的成功主要取决于项目中涉及的不同成员之间的沟通,利益相关者,开发人员,测试人员以及组织的管理 。缺乏沟通可能会导致无法回答的问题和疑问,这可能最终导致错误的申请或应用程序无法满足业务要求,从而导致所有各方互相指责 。
JBehave的工作方式与Serenity相同 。但是,如果您的目标是使自动验收测试更有效,那么将Serenity与JBehave集成以获得更好的测试体验是理想的选择 。这是因为Serenity的核心概念基于BDD开发,它还使用户能够编写功能强大且丰富的测试报告 。我们将在下一节中详细讨论它 。
3. Serenity
Serenity是一个开源库,用于行为驱动的测试 。该框架可帮助您编写验收标准,这些标准结构良好且维护更多 。它扩展了JUnit和WebDriver的功能 。最初,它被称为修昔底德 。名称改变背后的原因只不过是发音的难度 。不过,旧名称可以在引用时使用 。
推荐阅读
- mysql数据库中,数据量很大的表,有什么优化方案么?
- Innodb IO优化-配置优化
- 全面解析Java日期时间API
- 一次 MySQL 千万级大表的优化过程
- 35个可以飞快提高千倍效率的Java语言代码小技巧,你值得拥有!
- 程序员接私活的7大平台利器
- C++这七大特性
- 世界上最大的玫瑰花 朱丽叶玫瑰为什么那么贵
- 梦见马路上涨大水了 梦见马路上水很深
- 外国人的奇葩茶俗
