7个开源测试自动化框架

本文最初由TestProject发布。 感谢您支持使SitePoint成为可能的合作伙伴。

当我们进入2017年最后一个季度时,TestProject的团队决定收集最好的开源测试自动化框架,以帮助您为您选择合适的框架!

这是7种不同的开源测试自动化框架的优缺点。

1.机器人框架

机器人框架(RF)是用于验收测试和验收测试驱动开发(ATDD)的测试自动化框架。 该框架是用Python编写的,但也可以在Jython(Java)和IronPython(.NET)上运行,因此是跨平台的(Windows,Linux或MacOS)。

优点:

  • 它利用关键字驱动的测试(KDT)方法简化了测试自动化过程,该方法可帮助测试人员创建易于编写的可读测试。
  • 具有易于使用的测试数据语法。
  • 围绕着一个丰富的生态系统,其中包含作为单独项目开发的各种通用测试工具
  • 有许多使其高度可扩展的API。
  • 尽管不是内置功能,但RF可以通过pabot库Selenium Grid执行并行测试。

缺点:

  • 自定义HTML报告并不容易。

底线:如果您的目标是具有大量库和扩展的KDT自动化,则强烈建议使用此跨平台框架。 如果要添加新关键字(通过RF测试库API ),则需要Java / Python / C编程语言的基本知识。

2. JUnit

JUnit是用于Java应用程序的单元测试的框架,用于编写和运行可重复的测试。

优点:

  • 测试是用纯Java编写的,这种Java被称为世界领先的编程语言
  • 支持测试驱动的开发(TDD)。
  • 使您能够创建自己的单元测试用例套件。
  • 与其他工具(例如Maven )和IDE(例如IntelliJ )很好地集成在一起。
  • 有历史记录-因此它拥有庞大的用户群,可以轻松地找到有关它的文档。

缺点:

  • 如果需要模拟能力,则需要添加Mockito (或其他一些模拟库)。
  • 非技术人员无法读取测试,因为例如JUnit中的方法名称受Java约定约束。

底线:如果您希望为Java应用程序编写单元测试,那可能是最好的选择。 但是,对于功能测试或非Java应用程序,应考虑其他解决方案。

3. Spock

Spock是针对Java和Groovy应用程序的测试和规范框架。 它基于JUnit。

优点:

  • 创建可读性测试并支持简单的英语句子,使其易于阅读。
  • 提供周围的环境,因此可以轻松地使您了解如何解决故障。
  • 具有内置的模拟和存根功能。
  • 支持数据驱动测试(DDT)。

缺点:

  • 需要Groovy编程语言的基础知识。

底线:如果您的应用程序是基于JVM的,并且您的目标是使用DSL进行BDD测试自动化,那么该框架将非常适合您!

4. NUnit

NUnit是适用于所有.Net语言的单元测试框架。 它最初受Junit的启发,完全用C#编写,并且经过重新设计以充分利用许多.NET语言功能。

优点:

  • 快速启动和测试执行。
  • 带有断言和注释。
  • 启用并行测试。
  • 支持测试驱动的开发(TDD)。

缺点:

  • 它不是跨平台的,因为它仅用于.Net语言。
  • 它没有集成到Visual Studio生态系统中,因此使用它意味着需要更多的维护。

底线:一个很好的C#单元测试开源框架,具有悠久的历史和良好的声誉。 但是,如果您已经在使用.NET语言,则可以考虑使用MSTest。

5. TestNG

TestNG是Java的测试自动化框架,受JUnit和NUnit的启发,但包含改进的功能和新功能(NG –下一代)。 它旨在涵盖所有测试自动化类别:单元测试,功能测试,端到端,集成测试等。

优点:

  • 它很容易集成到Maven循环中。
  • 使开发人员能够编写灵活而强大的测试。
  • 支持数据驱动测试(DDT)。
  • 注释很容易理解。
  • 测试用例可以轻松分组。
  • 允许您创建并行测试。

缺点:

  • 仅支持Java,因此您至少需要具备Java编程语言的基本知识。
  • 您必须花时间在框架设置和设计上。

底线:如果您使用Java,则正在寻找端到端的测试自动化框架,并愿意在框架设置上花费一些时间–您绝对应该考虑使用TestNG。

6.茉莉花

Jasmine是一个JavaScript单元测试框架。 它也被称为JavaScript的行为驱动开发(BDD)测试框架。 它适用于网站,Node.js项目或任何可以运行JavaScript的地方。 它主要与AngularJS配对

优点:

  • 除了JavaScript之外,它还可以在Python和Ruby中运行,如果您想与服务器端测试一起运行客户端测试,可以为您提供极大的帮助。
  • 得到许多CI(代码船,Travic等)的支持。
  • 具有断言的内置语法。

缺点:

  • 在大多数情况下,它需要测试运行程序(例如Karma )。
  • 异步测试有困难。

底线:如果您正在寻找统一的(客户端-服务器)单元测试解决方案,Jasmin可能非常适合您的需求。

7.摩卡咖啡

Mocha是一个JavaScript单元测试框架,可在Node.js上运行测试。 它主要与ReactJS配对

优点:

  • 内置了自己的测试运行程序。
  • 支持异步测试。
  • 由于您可以使用任何满足您需要的断言库(Chai,expect.js,Must.js等)(作为Node标准“ assert”功能的替代品),因此具有灵活性。

缺点:

  • 该领域相对较新(2012年开发),这意味着它仍在变化中,并且在某些方面可能缺乏用户基础和支持。
  • 仅提供基本测试结构,因此需要其他设置和配置(对于某些用户可能是一个优点)。

底线:如果您正在寻找JavaScript独立的单元测试框架,那么Mocha是您的首选框架!

From: https://www.sitepoint.com/7-open-source-test-automation-frameworks/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值