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简介相关推荐

  1. 行为驱动开发BDD和Cucunber简介

    测试驱动开发(TDD) 1.测试驱动开发,即Test-Driven Development(TDD),测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论.TDD的原理是在开发功能代码之前 ...

  2. 第一章 cucumber测试框架综述

    1.1 什么是BDD(行为驱动开发)   首先了解一个概念,BDD(BehaviorDrivenDevelopment:行为驱动开发)为用户提供了从 开发人员和客户的需求创建测试脚本的机会.因此,开始 ...

  3. Python计算机视觉:第八章 图像类容分类

    第八章 图像类容分类 8.1 K最近邻 8.1.1 一个简单的二维例子 8.1.2 图像稠密(dense)sift特征) 8.1.3 图像分类--手势识别 8.1 session 和登录失败 8.1. ...

  4. 自动化测试框架cucumber_自动化测试框架cucumber-java操作手册_从配置到生成测报...

    一.cucumber简介 cucumber是BDD(Behavior-driven development,行为驱动开发)的一个自动化测试框架产品.cucumber使用自然语言来描述测试,通过设置中文 ...

  5. [转]Django REST framework 简介与中文教程

    Django REST framework 简介与中文教程 简介 在序列化与反序列化时,虽然操作的数据不尽相同,但是执行的过程却是相似的,也就是说这部分代码是可以复用简化编写的. 在开发REST AP ...

  6. Open Images Dataset V6 简介

    文章目录 0. 前言 1. 简介 2. 获取以及标注格式 2.1 数据获取 2.2 标注格式 3. 按类别下载图片脚本 附录:各种类别介绍 检测标签(600类) 视觉关系-人物/物体属性(15类) 视 ...

  7. cucumber框架使用解析

    一.简介 Cucumber 是一个能够理解用普通语言描述的测试用例的行为驱动开发(BDD)的自动化测试工具,,用Ruby**编写,支持Java和·Net等多种开发语言. 二.Cucumber三大组成 ...

  8. Ruby on rails 实战圣经:Part 1: 入门导览-Ruby on Rails 简介

    Ruby on Rails 简介 "Life's too short tobuild something nobody wants" - Ash Maurya, Running L ...

  9. Ruby on rails 实战圣经:入门导览-Ruby on Rails 简介

    Ruby on Rails 简介 "Life's too short tobuild something nobody wants" - Ash Maurya, Running L ...

最新文章

  1. 数量级提升!深度学习让机器人抓取更高效
  2. Pandas获取数据列名称的列表(list):(column list)
  3. 求一个集合的所有子集 Python实现
  4. Browser Page Parsing Details
  5. python程序移植到linux,如何使python或perl脚本可移植到Linux和Windows?
  6. html基本标签与属性
  7. 安装vs2019导致vs2017打开项目失败
  8. C语言查看文件fp指针位置
  9. 2018最新java基础学习路线
  10. leetcode题解102-翻转二叉树
  11. 现在事业单位好不好考?
  12. centos识别移动硬盘U盘,需安装【ntfs-3g】
  13. 浏览器向服务器发送的消息称为,网络是怎样连接之浏览器的探索之旅读书笔记(一)...
  14. 智能信贷产业进入爆发期,银行如何破解微贷难题?
  15. 模式匹配算法逐步精简
  16. 联想Win10安装Ubuntu双系统教程
  17. python函数题、咖啡名称_使用Python来分析秋天的第一杯咖啡
  18. 服务器如何挂网页游戏,网页游戏怎么挂云服务器
  19. squid高性能代理缓存服务器
  20. 关于app的闪退问题

热门文章

  1. java如何实现计费软件_基于jsp的网吧自动计费收费管理系统-JavaEE实现网吧自动计费收费管理系统 - java项目源码...
  2. 国内知名IT互联网公司名单
  3. ActionForm与bean的区别
  4. nyoj 203 三国志
  5. (Win10详细版)JDK 安装与环境变量配置
  6. 学习分布式的B站视频
  7. 机器学习深度学习视频资料汇总
  8. 一个用来学习CoAP协议的小例子
  9. SocketPro完整使用教程分享,手把手指导
  10. 解决:微信小程序按钮重复点击