Selenium 什么是TestNG和JUnit框架

Selenium 什么是TestNG和JUnit框架

JUnit和TestNG是Java应用程序或Selenium最流行的测试框架。这两个框架都很容易使用。因此,在选择应用程序的测试框架时,最好对其中一个或另一个的功能有一个大致了解,然后根据项目需求做出明智的决定。

本文将讨论JUnit和TestNG。

什么是TestNG

根据其文档,TestNG的定义如下:

TestNG是一个受JUnit和NUnit启发的测试框架,但引入了一些新的功能,使其更强大且易于使用。

TestNG是一个开源的自动化测试框架,其中NG代表NextGeneration。TestNG类似于JUnit(特别是JUnit 4),但它不是JUnit的扩展。它受到JUnit的启发。它的设计目标是比JUnit更好,特别是在测试集成类时。TestNG的创建者是Cedric Beust。

通过消除旧框架的大多数限制,TestNG使开发人员能够编写更灵活和强大的测试。由于它大量借鉴了Java注解(自JDK 5.0引入)来定义测试,它还可以向您展示如何在真实的生产环境中使用Java语言的这个新特性。

什么是JUnit

Junit已经推动了开发人员理解与任何其他测试框架相比,特别是单元测试的有用性。通过充分利用简单、实用和严格的架构,JUnit已经成功“传染”了大量开发人员。请查看我们的JUnit教程,以深入了解其功能。同时,JUnit也有一些不足之处,如下所列:

  • 最初只设计用于单元测试,现在用于各种测试。

  • 无法进行依赖性测试。

  • 配置控制差(setUp/tearDown)。

  • 侵入性(强制您扩展类并以某种方式命名方法)。

  • 静态编程模型(不必要地强制您重新编译)。

  • 在复杂项目中管理不同测试套件可能非常棘手。

JUnit vs TestNG

JUnit的当前版本是5.7.1,仍在不断发展并努力加入更多功能。TestNG的当前版本是7.4.0,已经成熟且功能丰富。

以下表格比较了JUnit和TestNG在不同功能上的差异。表格不包括在这两个框架中都存在的非常具体或常见的功能,例如测试异常、超时设置、生命周期回调方法等。

功能 JUnit TestNG 结论
注解 基于注解 基于注解 JUnit 5和TestNG都是基于注解的。它们在性质和行为上相似。
使用简便性 JUnit 5内置了各种模块;你需要JUnit平台和JUnit Jupiter来编写测试用例。如果你想要更多功能,比如参数化测试,则需要添加junit-jupiter-params模块。 单一模块即可获取所有TestNG功能。 TestNG在使用简便性方面更好。
IDE支持 受主要IDE如Eclipse和IntelliJ IDEA支持。 支持主要的IDE,如Eclipse和IntelliJ IDEA。 两者都类似,并可与主要的IDE进行轻松集成。
数据提供器 支持多种提供测试数据的方式,如方法、枚举、CSV、CSV文件等。 支持数据提供器方法和测试套件xml文件。 JUnit更适合注入测试方法的输入数据
测试套件 在JUnit中,可以使用@RunWith和@Suite注解来运行测试套件。 TestNG使用一个XML文件来运行套件测试。
HTML报告 JUnit需要外部插件maven−surefire−report−plugin来生成HTML报告。 TestNG自动为测试运行生成HTML报告。 TestNG的HTML报告看起来过时,但使用起来很简单。如果您需要与他人共享HTML报告,建议使用JUnit。
Java Main方法运行 我们可以使用JUnit 5的启动器API从Java Main方法运行测试。 我们可以使用TestNG的run()方法执行Java Main方法中的测试。 两者都支持从Java Main方法执行测试用例。
断言 JUnit提供了足够的断言方法来比较预期和实际的测试结果。 TestNG提供了足够的断言方法来比较预期和实际的测试结果。 在断言支持方面,两者都很相似。 | 假设条件 | JUnit支持根据特定条件跳过测试。 | TestNG不支持假设条件。 | 如果你想根据条件跳过测试,JUnit更好。
测试顺序 JUnit不支持测试顺序。 TestNG支持通过优先级属性按顺序排序测试方法。 当你想按特定顺序执行测试时,TestNG更好。
禁用测试 JUnit支持多种禁用和启用测试的方法。例如,根据操作系统、JRE、系统属性。 TestNG支持禁用测试,但功能有限。 当你想根据条件禁用或启用测试时,JUnit更好。
并行执行 JUnit 5目前尚不支持并行执行。 TestNG通过XML套件运行支持并行执行。 目前来说,TestNG在并行执行方面更好,JUnit 5的开发正在进行以支持这一特性。
监听器 JUnit通过Launcher API支持监听器,没有机制可以使用注解添加监听器。 TestNG支持各种类型的监听器,并且可以通过注解添加。 相比于JUnit 5,TestNG的监听器支持更好。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

TestNG 精选笔记