Cucumber简介
Cucumber 是一个能够理解用普通语言描述的测试用例的支持行为驱动开发(BDD)的开源自动化测试工具,用Ruby、JavaScript、Java和.Net等多种开发语言。Cucumber是程序员用于测试其他软件的开源软件工具。它运行以行为驱动开发(BDD)风格编写的自动验收测试。
BDD
BDD:Behavior-driven development,行为驱动开发。BDD是一种敏捷软件开发的技术。行为驱动开发(BDD)是测试驱动开发的延伸,开发使用简单的,特定于领域的脚本语言。
Gherkin
BDD方法的核心是其简单的语言解析器,称为Gherkin。它允许用客户可以理解的逻辑语言来指定预期的软件行为。因此,Cucumber允许执行用面向业务的文本编写的功能文档。 Cucumber用Gherkin语法,它是一种用自然语言来定义测试用例。它被设计成非技术人员都可以读懂的,并且共同描述与软件系统有关的用例。Gherkin的语法背后的目的是促进整个开发团队(包括业务分析师和经理)的行为驱动开发实践。它试图从企业管理的需求定义的初始阶段开始,并在开发生命周期的其他阶段执行稳固,明确的需求。
语法
Cucumber的文件又称为剧本文件。所有的剧本文件都有.feature文件扩展名。它们包含被测系统的单个功能定义,并且是一个可执行的测试脚本。文件中的指令是任何非空和非注释行。它们由一个公认的Gherkin关键字和一个字符串组成。每个Cucumber剧本文件中描述一个功能(Feature),它细分为场景(Scenario),场景中包含多个顺序执行的步骤(Step),即步骤序列。
关键字
- Feature
- Scenario
- Given,When,Then,And,But(steps)
- Background
Feature
Feature是所有测试的开头。后面跟一段描述性的文字,表明这个测试文件是干什么的。
Scenario
Scenario是一个具体的测试case,包含了多个step。一般情况下,都是由Given(给定一个初始条件),When(发生了什么),Then(结果是什么)组成的。
Steps
step是cucubmer的最小单元,每个step是由Given, When, Then, And, 或者But开头的。如果关键词后面的内容是完全一样的话,那么cucumber会认为这两句话是重复的,哪怕前面的关键词不一样。
Given
Given一般用于在Scenario中描述系统的初始状态。它的目的是使系统在使用前处于一个已只的状态,要避免在Given中谈论交互上的事情。
When
When描述一个事件或者动作。他可以是与系统间的交互,也可以是由另一个系统触发的事件。cucumber强烈推荐每个Scenario只有一个When,当你觉得需要加更多的When的时候,通常就是需要拆分成多个Scenario的信号。
Then
Then描述期望的输出或者结果。对Then的step definition应该使用断言去比较期望值和实际值,就和单元测试差不多。
And和But
当有几个Given,When,Then的时候,可以用And或者But代替。
Background
当在同一个Feature里有多个Scenario有相同Given的时候,可以使用Background将这些Given抽到一起。这样这个Feature的每个Scenario在运行的时候,都会先运行一次Background。每个Feature里只能有一个Background。
辅助关键字
“”":文档字符串
|:数据表
@:标签
#:注释
Cucumber简介相关推荐
- 行为驱动开发BDD和Cucunber简介
测试驱动开发(TDD) 1.测试驱动开发,即Test-Driven Development(TDD),测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论.TDD的原理是在开发功能代码之前 ...
- 第一章 cucumber测试框架综述
1.1 什么是BDD(行为驱动开发) 首先了解一个概念,BDD(BehaviorDrivenDevelopment:行为驱动开发)为用户提供了从 开发人员和客户的需求创建测试脚本的机会.因此,开始 ...
- Python计算机视觉:第八章 图像类容分类
第八章 图像类容分类 8.1 K最近邻 8.1.1 一个简单的二维例子 8.1.2 图像稠密(dense)sift特征) 8.1.3 图像分类--手势识别 8.1 session 和登录失败 8.1. ...
- 自动化测试框架cucumber_自动化测试框架cucumber-java操作手册_从配置到生成测报...
一.cucumber简介 cucumber是BDD(Behavior-driven development,行为驱动开发)的一个自动化测试框架产品.cucumber使用自然语言来描述测试,通过设置中文 ...
- [转]Django REST framework 简介与中文教程
Django REST framework 简介与中文教程 简介 在序列化与反序列化时,虽然操作的数据不尽相同,但是执行的过程却是相似的,也就是说这部分代码是可以复用简化编写的. 在开发REST AP ...
- Open Images Dataset V6 简介
文章目录 0. 前言 1. 简介 2. 获取以及标注格式 2.1 数据获取 2.2 标注格式 3. 按类别下载图片脚本 附录:各种类别介绍 检测标签(600类) 视觉关系-人物/物体属性(15类) 视 ...
- cucumber框架使用解析
一.简介 Cucumber 是一个能够理解用普通语言描述的测试用例的行为驱动开发(BDD)的自动化测试工具,,用Ruby**编写,支持Java和·Net等多种开发语言. 二.Cucumber三大组成 ...
- Ruby on rails 实战圣经:Part 1: 入门导览-Ruby on Rails 简介
Ruby on Rails 简介 "Life's too short tobuild something nobody wants" - Ash Maurya, Running L ...
- Ruby on rails 实战圣经:入门导览-Ruby on Rails 简介
Ruby on Rails 简介 "Life's too short tobuild something nobody wants" - Ash Maurya, Running L ...
最新文章
- 数量级提升!深度学习让机器人抓取更高效
- Pandas获取数据列名称的列表(list):(column list)
- 求一个集合的所有子集 Python实现
- Browser Page Parsing Details
- python程序移植到linux,如何使python或perl脚本可移植到Linux和Windows?
- html基本标签与属性
- 安装vs2019导致vs2017打开项目失败
- C语言查看文件fp指针位置
- 2018最新java基础学习路线
- leetcode题解102-翻转二叉树
- 现在事业单位好不好考?
- centos识别移动硬盘U盘,需安装【ntfs-3g】
- 浏览器向服务器发送的消息称为,网络是怎样连接之浏览器的探索之旅读书笔记(一)...
- 智能信贷产业进入爆发期,银行如何破解微贷难题?
- 模式匹配算法逐步精简
- 联想Win10安装Ubuntu双系统教程
- python函数题、咖啡名称_使用Python来分析秋天的第一杯咖啡
- 服务器如何挂网页游戏,网页游戏怎么挂云服务器
- squid高性能代理缓存服务器
- 关于app的闪退问题