2017 抢手开源自动化测验结构优缺陷比照

发表于:2017-11-17来历:TestProject作者:TestProject点击数: 标签:
时刻一晃已来到 2017 年的最终一个季度,TestProject 比照了在本年比较抢手的 7 款开源自动化测验结构的优缺陷,以协助你挑选合适自己的测验结构

1. Robot Framework

Robot Framework(RF)是用于检验测验和检验测验驱动开发(ATDD)的明升测验结构。 根据 Python 编写,但也能够在 Jython(Java)和 IronPython(.NET) 上运转,供给跨渠道支撑(WindowsLinux 或 MacOS )。

长处:

  • 经过运用要害字驱动测验(KDT)办法简化了自动化测验进程,便利测验人员创立易读的测验。
  • 测验数据语法简略易用。
  • 生态体系丰厚。由各种通用测验库和东西组成,这些东西都是作为独立项目开发的。
  • 具有高度可扩展性。
  • 可经过 pabot 或 Selenium Grid 履行并行测验。

缺陷:

  • 自定义 HTML 陈述较为费事。

假如是针对大范围的库和扩展的 KDT 自动化测验,主张运用此跨渠道结构。假如想要增加新的要害字(经过 RF 测验库 API ),需求具有 Java / Python / C 言语的根底常识。

2. JUnit

JUnit 是一款针对 Java 运用的单元测验结构,用于编写和运转可重复的测验。

长处:

  • 纯 Java 编写。
  • 支撑测验驱动开发(TDD)。
  • 答应创立自己的单元测验用例套件。
  • 能很好地与其他东西(如 Maven )和 IDE(如 IntelliJ )集成。
  • 长时刻开展,有自己巨大的用户集体,能够很简略找到文档。

缺陷:

  • 假如需求 mocking 才能,则需求额定增加 Mockito(或其他模仿库)。
  • 因 JUnit 中的办法称号受 Java 约好约束等原因,非技能人员很难读懂测验成果。

假如你正在为你的 Java 运用编写单元测验,那这或许是最好的挑选。 可是,关于功用测验或非 Java 运用,应考虑其他处理方案。

3. Spock

Spock 是用于 Java 和 Groovy 运用的测验和规范结构,根据 JUnit 。

长处:

  • 测验可读性强,支撑简略的英文语句,便于阅览。
  • 供给周边上下文,从而能轻松了解怎么处理毛病。
  • 内置 mocking 和 stubbing 功用。
  • 支撑数据驱动测验(DDT)。

缺陷:

  • 需求具有根本的 Groovy 言语常识。

假如你的运用是根据 JVM 的,而且方针是运用 DSL 进行 BDD 自动化测验,则此结构正合适!

4. NUnit

NUnit 是支撑一切 .Net 言语的单元测验结构。开端也是根据 Junit 的启示,彻底选用 C# 编写,现在已被彻底从头规划以运用更多 .NET 言语功用。

长处:

  • 发动和测验履行速度快。
  • 自带断语和注释。
  • 支撑并行测验。
  • 支撑测验驱动开发(TDD)。

缺陷:

  • 非跨渠道,仅适用于 .Net 言语。
  • 未集成到 Visual Studio echo 体系中,意味着运用它需求更多的保护。

一个很好的 C#开源单元测验结构,历史悠久,口碑较高。 不过,假如你正准备运用 .NET 言语,也能够考虑 MSTest 。

5. TestNG

TestNG 是一个 Java 自动化测验结构,受 JUnit 和 NUnit 的启示,但又改善和新增了一些功用。旨在包括一切自动化测验类别:单元测验、功用测验、端到端、集成测验等。

长处:

  • 简略整合到 maven 循环中。
  • 使开发人员能够编写灵敏而强壮的测验。
  • 支撑数据驱动测验(DDT)。
  • 注释很简略了解。
  • 测验用例能够轻松分组。
  • 答应创立并行测验。

缺陷:

  • 只支撑 Java ,至少需求具有 Java 编程言语的根底常识。
  • 有必要投入时刻进行结构设置和规划。

假如你运用 Java ,并正寻觅端到端的自动化测验结构,一起乐意投入一点时刻去设置结构,你应该考虑运用 TestNG 。

6. Jasmin

Jasmine 是一个 JavaScript 单元测验结构, 也被称为 JavaScript 的行为驱动开发(BDD)测验结构。适用于网页、Node.js 项目或任何能够运转 JavaScript 的当地。它主要与 AngularJS 配对运用。

长处:

  • 除了 JavaScript ,还能够运转在 Python 和 Ruby 中。假如想在你的服务器端运转客户端测验,它能够协助你。
  • 被许多 CIs 运用和支撑。
  • 内置用于断语的语法。

缺陷:

  • 大都情况下,它需求一个测验运转器(如 Karma )。
  • 难以异步测验。

假如你正在寻觅一个一致的(客户端 - 服务器)单元测验处理方案,Jasmin 或许会十分合适。

7. Mocha

Mocha 是一个 JavaScript 单元测验结构,它在 NodeJs 上运转测验,主要与 ReactJS 配对运用。

长处:

  • 内置测验运转器。
  • 支撑异步测验。
  • 运用灵敏,可运用任何契合需求的断语库(Chai、expect.js、Must.js 等)作为 Node 规范“断语” 功用的替代品。

缺陷:

  • 相对较新 (起始于 2012 年),意味着有许多的未知性和可变性,在某些方面或缺少用户根底和支撑。
    仅供给根本的测验结构,因而需求额定的设置和装备(关于一些或许是有利的)。

假如你正在寻觅 JavaScript 的独立单元测验结构,Mocha 是首选!

原文转自:https://my.oschina.net/editorial-story/blog/1574692