3

七款最优秀的Java测试框架

 1 year ago
source link: http://www.androidchina.net/13299.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Java 是当今最流行的编程语言之一,常年位居最受欢迎编程语言排行榜前三。一个优秀的java程序员,在研发时离不开对测试框架的了解,从而开发出更安全和更高效的代码。使用这些测试框架的其中一个最重要的原因是减少出错的可能性,提高开发效率,并降低研发成本。在本文中,我们将介绍用于 Java 测试的最常见的测试框架。

8cb95fde4cf54212b8e905237f30d783~tplv-k3u1fbpfcp-zoom-in-crop-mark:3024:0:0:0.awebp

1.Selenium

Selenium 是一个免费的开源测试框架,主要用于测试基于不同平台的 Web 应用程序。Selenium最大优势在于对网络应用程序进行自动化测试。Selenium 不仅是一个工具,而且是一个完整的套件,可以你补研发的的测试需求。Selenium 被广泛应用的主要原因是免费开源使用的。Selenium还是跨平台使用,适用于各个系统。Selenium 还可以与 Java 中的其他工具(如 docker 和 maven)结合运行。

优点:

  • 多浏览器支持
  • 多种语言和框架支持
  • 更好的集成和可重用性
  • 社区活跃,频繁更新

缺点:

  • 创建时比较繁琐,通常在创建测试用例时,会比较耗时,当然熟悉后就那么几个步骤。
  • 缺乏内置报告工具
  • 仅适用于网络应用程序

2. Serenity

Serenity 提供一个用于行为驱动测试的开源平台,早期以 Thucydides 为名。Serenity 可为测试自动化项目编写清晰且结构化的验收标准。此外,该框架具有增强 WebDriver 和 JUnit 功能的能力,还允许用户地创建描述性测试报告。

优点:

  • 支持多种自动化验收测试解决方案
  • 测试后快速创建文档
  • 可以很容易地与各种其他框架集成

缺点:

  • 创建功能文件需要更长的时间
  • 项目参与者之间必须保持持续的沟通

3.JUnit

Junit是目前应用最广泛的单元测试框架,受制于它初衷,Junit的框架旨在执行单元测试,研发人员可以通过函数或方法在路径中传递代码片段。当执行测试驱动的方法时,个人建议在编写实际代码之前预先完成单元测试代码。按照正常顺序,开发人员编写代码后,需要先执行测试用例,然后才能运行代码片段。每次添加新代码时,都要再次运行测试用例,以确保通过所有测试场景,并且代码没有问题,才允许上传代码到git库中。Junit框架之所以与众不同,是因为它比其他类似框架允许更快、执行更高效。

优点:

  • JUnit 提供对测试断点允许的支持
  • Junit提供比较完善的测试报告
  • Junit是一个简化框架,适用于部署自动化测试场景
  • Junit具有编写自动验证测试用例的能力

缺点:

  • 使用相对较大的测试套件时,Junit显得不会那么灵活
  • Junit测试后,没有生成 HTML 报告的功能,这对于非研发人员来说,是一本天书
  • Junit不支持依赖测试

4.TestNG

TestNG 是一个开源测试框架,并受到其他两个著名框架的启发——JUnit 和 NUnit,具有一些新的附加功能。源自 NG 代表下一代的名称,TestNG在证明其测试实力方面并不令人失望。TestNG测试过程也不是很复杂,我们可以通过框架请求测试数据库或前端来测试场景。还可以提取 HTML 报告,这对于项目经理,产品经理以及其他交付人员来说是非常有用。

优点:

  • 支持并行测试
  • 支持日志生成
  • 能够创建测试后 HTML 报告
  • 底层测试用例可以组合在一起
  • 可以设置测试用例执行的优先级

缺点:

  • 设置 TestNG 需要更多时间(对新手来说,过程是非常痛苦的)
  • 如果不需要优先考虑测试用例,则不推荐。

5.Cucumber

Cucumber 是一个用 Ruby 编写的测试框架,非常受测试人员的欢迎,因为它提供了一个统一的文档和规范标准,并提供了一个报告文档。此外,规范标准会自动更新。

优点:

  • 友好的可读性
  • 支持步骤可重用性,减少了一次又一次编写相同代码的需要
  • 可以使用一些示例来完成自动化测试

缺点:

  • cucumber与Gherkin整合一起增加了框架的复杂性
  • 测试人员/开发人员更在乎编写可在简单通用代码,完成工作的场景中重用的代码。

6. JBehave

这是一个基于 Java 原生的测试框架,与 selenium 驱动程序结合使用,并支持行为驱动开发 (BDD)。JBehave提供了一个比较友好的报告功能,这意味着可以以 XML、HTML 或文本格式生成报告。

优点:

  • 帮助用户提供出色的文档
  • 支持测试后生成 HTML 报告
  • JBehave高效且易于使用
  • 开箱即用的 JUnit 支持

缺点:

  • 不支持特性化功能,只支持事件完整性,进而可能导致导致应用程序发生错误或者与实际业务需求相悖,最终导致所有各方互相指责(甩锅)。

7. Mockito

Mockito 是一个开源的基于 Java 的行为驱动测试框架。该框架的主要功能是模拟对象是自动创建的,无需显式创建它们。

优点:

  • 可以使用注释创建模拟对象
  • 对返回值的提供基础支持
  • 模拟对象不需要手动编写

缺点:

  • 不支持局部变量的模拟
  • 不支持私有和静态方法
  • 对于我们编写的子类,无法操作其私有字段。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK