1、cucumber介绍

  cucumber是一种可以使用文本描述语言来执行自动测试用例的工具,使用的语言叫做Gherkin .
  Gherkin用于描述软件的行为而不需要了解具体的实现,的使用主要有两个目的文档和自动测试用例(我们希望能够和手工测试用例也统一)。 Gherkin支持超过40种语言,包括英文、中文。 Gherkin可以在任何地方新增注释,注释以#开头,每一个文件都是以.feature结尾,在feature文件中输入功能描述、场景、步骤,当执行 这个功能时每一个步骤都需要编写ruby代码块来实现具体的功能当前cucumber支持多种语言,除了ruby还可以使用java、javascript来编写步骤层

2、Features介绍

  feature(功能),每一个feature文件都要开始于Feature(功能),Feature之后的描述可以随便写,直到出现Scenario(场景),一个feature中可以有多个 Scenario,每个Scenario包含(step)步骤列表,步骤使用Given、When、Then、But、And这些关键词,cucumber对这些关键词的处理是一样的,但是我们在使用的时候需要按照场景区分。

3、Step definitions介绍

  Cucumber中定义的每一个step(步骤)都需要有一个step definition对应,默认的话是使用Ruby来编写定义的脚本,支持通过正则表达式从step中传递参数。

4、Given When then(假如 当 那么)

  Cucumber的步骤中会包含Given、When、then这些词组,cucumber本身在技术实现上不区分这三个词组,但是在使用上推荐按照词组的意思来使用。
  Given-用例开始执行前的一个前置条件,类似与编写代码setup中的一些步骤
  When-用例开始执行的一些关键操作步骤,类似点击元素等
  Then-观察结果,就是平时用例中的验证步骤
  And-一个步骤中如果存在多个Given操作,后面的Given可以用And替代
  But-一个步骤中如果存在多个Then操作,第二个开始后面的Then可以用But替代

5、Cucumber使用

Demo:
1、新建一个文件夹,文件名必须为:features
2、再新建两个文件夹,建议为:feature_library(描述语言) step_definitions(步骤)…
3、在feature_library文件夹中新建文件add.feature(文件名随意)

中文最好在前面加# language: zh-CN

# language:zh-CN
@test
功能: add@test1场景: 1+1=2假如 我有一个数<1>而且 你也有一个数<1>当 我们相加

4、在step_definitions文件夹中新建文件comm_step.rb(文件名随意)

Given /^我有一个数<(.+)>$/ do |addend|@addend=addend
endWhen /^你也有一个数<(.+)>$/ do |augend|@augend=augend
endWhen /^我们相加$/ dosum=@addend+@augendp sum
end

5、 执行编写的脚本
  在features文件夹的同一目录下运行cucumber命令,则会自动查找features文件夹下的所有.feature结尾的文件并执行

6、按照tag执行
  使用cucumber --tags @test 则执行test功能下的所有场景
  使用cucumber --tags @test1 则执行test1这个场景

cucumber介绍及简单使用相关推荐

  1. Matplotlib的介绍及简单操作

    Matplotlib的介绍及简单操作 1 什么是Matplotlib 是专门用于开发2D图表(包括3D图表) 以渐进.交互式方式实现数据可视化 2 为什么要学习Matplotlib 可视化是在整个数据 ...

  2. (三)AJAX基本介绍和简单实例03

    (三)AJAX基本介绍和简单实例03-----Ajax与数据库的动态应用 前台显示界面: 选择所有客户之后: 选择其中一个客户---杜森: Demo03.html代码 <html> < ...

  3. rabbitMQ消息队列 – 面板介绍及简单demo

    首先rabbit安装好之后,运维会给一个控制面板. 默认账号密码为guest 登入以后可以看到具体界面. 在此鸣谢百度翻译给予的大力支持.. ###写一个简单的demo 编写之前..虽然说可以直接用底 ...

  4. Protobuf介绍及简单使用(上)

    目录 Protobuf 介绍 优势 protobuf语法 Specifying Field Rules Data type Data name Number Protobuf注释 保留字段与标识符 s ...

  5. SQL Server中追踪器Trace的介绍和简单使用

    原文:SQL Server中追踪器Trace的介绍和简单使用 一.What is Trace? 对于SQL Profiler这个工具相信大家都不是很陌生,没用过的朋友可以在SQL Server Man ...

  6. S3C2440移植linux3.4.2内核之内核框架介绍及简单修改

    文章目录 uboot启动内核分析 简单配置内核 编译内核 设置机器ID 修改晶振 移植Linux3.4.2内核其他文章链接: S3C2440移植linux3.4.2内核之内核框架介绍及简单修改 S3C ...

  7. 新颖的自我介绍_简单新颖的自我介绍范文

    简单新颖的自我介绍范文 简单新颖的自我介绍范文1 各位考官好,今天能够站在这里参加面试,有机会向各位考官请教和学习,我感到非常的荣幸.希望通过这次面试能够把自己展示给大家,希望大家记住我.我叫.... ...

  8. Quartz框架实现定时任务介绍及简单使用

    https://blog.csdn.net/bicheng4769/article/details/81097305 Quartz框架介绍及简单使用 https://www.cnblogs.com/d ...

  9. Hive第一天——Hive介绍以及简单使用

    Hive第二天--Hive介绍以及简单使用 自己的话:黑发不知勤学早,白首方悔读书迟 每天都要保持前进! 一.什么是Hive 数据库: mysql.oracle.sqlserver.DB2.sqlit ...

最新文章

  1. selenium如何操作HTML5的画布canvas上的元素
  2. 起飞,会了这4个 Intellij IDEA 调试魔法,阅读源码都简单了
  3. Caused by: org.apache.ibatis.reflection.ReflectionException我碰到的情况,原因不唯一
  4. 201521123011 《java程序设计》 第9周学习总结
  5. python学习Day14 带参装饰器、可迭代对象、迭代器对象、for 迭代器工作原理、枚举对象、生成器及生成表达式...
  6. C#和Java的对比
  7. ExtJs Ext.panel.Panel和Ext.container.Viewport布局问题
  8. A Painless Q-learning Tutorial (一个 Q-learning 算法的简明教程)
  9. Gartner 2015新兴技术发展周期简评:大数据实用化、机器学习崛起
  10. 兜兜转转一个圈,到底What is all you need?
  11. kibana操作elasticsearch:创建索引库
  12. uniapp 定时执行_ftp上传,完成ftp定时上传、下载只需3步
  13. 服务器母鸡系统,母鸡云服务器
  14. Java共现矩阵的构建(用于社交网络结构分析)
  15. jqgrid for asp.net 单页全选记录ID
  16. graph slam tutorial :从推导到应用3
  17. WebService调用第三方服务(中英文翻译)
  18. hive的dual表
  19. python之禅中文原文_Python之禅翻译
  20. mr编程实现手机流量统计和读取MySQL数据

热门文章

  1. centos7一键优化脚本
  2. 【李开复】大学四年应该这么度过(四)
  3. Windows下给磁盘扩容
  4. 【STM32F4系列】【HAL库】【自制库】ps2手柄模块驱动
  5. 《职来职往》那些话~~~我承认,他们懂得比我多……
  6. Java开发在线打开编辑保存Word文件(支持多浏览器)
  7. DICOM文件的matlab读取
  8. 量子计算机可以发明时光机,这三种科技一旦成功,人类将迈入二级文明
  9. 【Simulink教程案例2】基于Simulink的模糊控制器设计与实现
  10. mxc_uart driver 加载过程