rf框架的缺点_2017热门开源自动化测试框架优缺点对比

原标题:2017热门开源自动化测试框架优缺点对比

时间一晃已来到 2017 年的最后一个季度,TestProject 对比了在今年比较热门的 7 款开源 自动化测试框架的优缺点,以帮助你选择适合自己的测试框架。

1. Robot Framework

Robot Framework(RF)是用于验收测试和验收测试驱动开发(ATDD)的自动化测试框架。 基于 Python 编写,但也可以在 Jython(Java)和 IronPython(.NET) 上运行,提供跨平台支持( Windows、 Linux 或 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 是一个 Java 单元测试框架, 也被称为 Java 的行为驱动开发(BDD)测试框架。适用于网页、Node.js 项目或任何可以运行 Java 的地方。它主要与 AngularJS 配对使用。

优点:

除了 Java ,还可以运行在 Python 和 Ruby 中。如果想在你的服务器端运行客户端测试,它可以帮助你。

被许多 CIs 使用和支持。

内置用于断言的语法。

缺点:

多数情况下,它需要一个测试运行器(如 Karma )。

难以异步测试。

如果你正在寻找一个统一的(客户端 - 服务器)单元测试解决方案,Jasmin 可能会非常适合。

7. Mocha

Mocha 是一个 Java 单元测试框架,它在 NodeJs 上运行测试,主要与 ReactJS 配对使用。

优点:

内置测试运行器。

支持异步测试。

使用灵活,可使用任何符合需求的断言库(Chai、expect.js、Must.js 等)作为 Node 标准“断言” 功能的替代品。

缺点:

相对较新 (起始于 2012 年),意味着有许多的未知性和可变性,在某些方面或缺乏用户基础和支持。

仅提供基本的测试结构,因此需要额外的设置和配置(对于一些可能是有利的)。

如果你正在寻找 Java 的独立单元测试框架,Mocha 是首选!

更多文章请前往51Testing软件测试网。返回搜狐,查看更多

责任编辑:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/503728.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云教版认识计算机说课,【教学设计】第1册第1课《认识电脑交朋友》

备课时间:2017年9月3日一、教材分析本节课是省编最新版《小学信息技术》教材第一册第一课。“学一学”由三个部分组成:探寻电脑应用技术;了解电脑组成;养成良好习惯。这三个部分的知识,不仅拓展了学生的视野&#xff0…

python中模块和包是什么_Python中模块和包的概念

将所有代码放入一个py文件&#xff1a;无法维护 如果将代码分拆放入多个py文件&#xff0c;好处&#xff1a; 同一个名字的变量互不影响 模块a 模块b | | V V #a.py #b.py x 5 x str def f1(): def f1(iterable): pass pass 引用其他模块 #test.py <---------------------…

卷组删除pv_如何安全的删除Linux LVM中的PV物理卷(硬盘或分区)

情况介绍&#xff1a;一、由于硬盘或者分区的操作方式其实都一样&#xff0c;所以我这里就以分区为例。二、/home分区2.6G&#xff0c;由如下pv组成&#xff1a;/dev/sda5 100M/dev/sda6 200M/dev/sda7 300M/dev/sda8 400M/dev/sda9 500M/dev/sda10 600M/dev/sda11 500M很碎对吧…

python输入float_python – 在tensorflow中创建一个float64变量

我正在尝试进行逻辑回归,我的训练数据集来自一个numpy float64数组.我的代码看起来像, import tensorflow as tf graph tf.Graph() with graph.as_default(): examples tf.constant(mat6) # mat6 is a numpy float64 array t_labels tf.constant(labels) # labels is an a nu…

计算机操作系统英文版课后答案,计算机操作系统(第3版)课后习题答案(完整版)...

内容简介&#xff1a;计算机操作系统(第3版)课后习题答案(完整版)第一章1&#xff0e;设计现代OS的主要目标是什么&#xff1f;答&#xff1a;(1)有效性 (2)方便性 (3)可扩充性 (4)开放性2&#xff0e;OS的作用可表现在哪几个方面&#xff1f;答&#xff1a;(1)OS作为用户与计算…

免费mysql空间_php+mysql免费空间

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航&#xff0c;为用户…

宇宙人工智能计算机程序,由人工智能推理出:整个宇宙会变成一个玄计算机,宇宙是虚拟的...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼人工智能现在的计算机芯片是纳米级的&#xff0c;可简称纳米计算机&#xff0c;未来可能出现量子计算机、玄(量子由玄组成)计算机。现在看生物实质上也是纳米计算机&#xff0c;具有计算机的全部功能&#xff0c;不同生物的DNA长度…

cdn需要备案吗_车子贴改色膜需要到车管所备案吗?

改色膜至今为止已经流行很多年了&#xff0c;但还是有部分车主对于贴改色膜之后备案这个事情还不是很了解&#xff0c;对于这个就来点知识小科普吧~~首先汽车贴改色膜是合法的&#xff0c;但这个也是有前提的&#xff0c;首先汽车车身更换颜色超过30%的话&#xff0c;就需要到车…

mysql数据库中文显示_关于Mysql数据库中文显示问题

挣扎在初级Web开发&#xff0c;无论是hibernate还是基础的jdbc都要涉及到一个编码问题&#xff0c;毕竟编程这套东西是伦家外国银发明的&#xff0c;我大中华的程序猿不得不低头&#xff0c;闲言少叙。严明而言&#xff0c;3点&#xff1a;1.mysql配置文件my.ini中添加2条&…

python selenium采集速卖通_2.不苟的爬虫小教程系列:python爬虫技术栈介绍

鉴于爬虫初学者们&#xff0c;往往也是编程的初学者&#xff0c;我在这里介绍一套最常用的技术栈&#xff0c;不求多&#xff0c;只求精。 毕竟我们的目标是采集到数据&#xff0c;只要能够成功实现目标的工具就是好工具。 爬虫框架scrapy&#xff1a;该框架是scrapinghub公司开…

读算法霸权笔记03_操控与恐吓

1. 市场失灵 1.1. 探索市场失灵现象就像寻宝游戏&#xff0c;很有意思 1.2. 建立一种算法来预测这个循环出现差错——多找回的两枚硬币——的可能性并对此下注 1.2.1. 盈利模式消失了&#xff0c;或者市场中的其他人也了解了这个模式&#xff0c;先行者优势消失 1.3. 在很多…

win10看计算机属性,win10系统查看windows7版本号要比计算机属性具体的图文步骤

win10系统使用久了&#xff0c;好多网友反馈说关于对win10系统查看windows7版本号要比计算机属性具体设置的方法&#xff0c;在使用win10系统的过程中经常不知道如何去对win10系统查看windows7版本号要比计算机属性具体进行设置&#xff0c;有什么好的办法去设置win10系统查看w…

mysql执行计划查看_查看Mysql执行计划

1、MySQL语法MySql提供了EXPLAIN语法用来进行查询分析&#xff0c;在SQL语句前加一个”EXPLAIN”即可。默认情况下Mysql的profiling是关闭的&#xff0c;所以首先必须打开profilingset profiling"ON"mysql> show variables like "%profi%";------------…

计算机社团活动总结ppt,社团活动总结PPT

九月迎新生&#xff0c;大学社团活动再次活跃起来。为了做好今年的活动&#xff0c;有必要对去年的社团活动做下反思总结。下面是出国留学网小编为您整理提供的大学社团活动总结PPT模板及正文预览&#xff0c;欢迎查看。PPT正文预览&#xff1a;大学社团活动总结xxxx年对活动与…

myeclipse怎么创建jframe类_创建型-建造者模式

一个对象创建的时候&#xff0c;需要各种初始化化&#xff0c;有一套复杂的创建流程&#xff0c;如果这些流程散布在系统各个地方的话&#xff0c;会越来越难以维护&#xff0c;因此建造者模式就是把一套复杂的创建某个具体产品的流程&#xff0c;管理起来。定义&#xff1a;将…

mysql占用内存吗_mysql占多少内存

展开全部MySQL 自身内存规62616964757a686964616fe4b893e5b19e31333433646463划说到 MySQL 自身的内存规划&#xff0c;最先想到的就是 MySQL 中各种 buffer 的大小&#xff0c;innodb buffer pool 就是最鹤立鸡群的那个。innodb_buffer_pool_size 参数的大小究竟如何设置&…

计算机鼠标装有,计算机鼠标装有传感器来监视鼠标的移动情况,如图

利用欧姆定律进行计算&#xff1a;根据串、并联电路的特点和欧姆定律的公式可进行有关计算。解题的方法是&#xff1a;(1)根据题意画出电路图&#xff0c;看清电路的组成(串联还是并联)&#xff1b;(2)明确题目给出的已知条件与未知条件&#xff0c;并在电路图上标明&#xff1…

docker portainer_「实战篇」开源项目docker化运维部署-Portainer管理集群部署(十)...

之前都是通过命令的方式&#xff0c;管理docker的&#xff0c;其实docker还是有图形界面的。使用图形界面如何管理docker&#xff0c;其实业界很多公司都对docker进行了图形化的封装。之前在初级和中级的时候也有界面marathon。这里说下业界比较出名的portainer。portainer官网…

php 执行mysql查询_php中执行mysql的常用操作

连接到mysql服务器&#xff1a;$conn mysql_connect($host,$user,$password) or die ("连接失败");mysql_query($conn);选择数据库&#xff1a;$usedbmysql_select_db("$db_name")or die ("连接失败");mysql_query($usedb);解决在mysql数据库中…

怎么快速搜索服务器里的文件,使用 Everything,快速搜索电脑文件,制作局域网资料搜索器 | 科技搜...

所需工具&#xff1a;Everything在 Windows 系统中&#xff0c;已经有自带的资源管理器文件查找功用&#xff0c;当然也有其他的一些软件辅佐查找&#xff0c;但是这些都不及一款软件&#xff0c;名字叫 Everything &#xff0c;速度非常快&#xff0c;支持正则表达式&#xff…