BDD 测试框架之 Cucumber 使用入门

栏目: 编程工具 · 发布时间: 6年前

内容简介:cucumber早在ruby环境下应用广泛,作为BDD框架的先驱,cucumber后来被移植到了多平台,简单来说cucumber是一个测试框架,就像是juint或是rspec一样,不过cucumber遵循的是BDD的原则。

1

什么是Cucumber

cucumber早在 ruby 环境下应用广泛,作为BDD框架的先驱,cucumber后来被移植到了多平台,简单来说cucumber是一个测试框架,就像是juint或是rspec一样,不过cucumber遵循的是BDD的原则。

2

何为BDD?

BDD就是行为驱动开发,是一种软件开发流程或者说是软件开发实践,具体学术化的东西这里就不介绍了,归根到底,cucumber具有让你用自然语言编写用例的能力。

使用自然语言编写用例有很多好处,最直观的好处就是你的客户在一定的情况下是能够看懂你的测试用例的。最为项目的最核心因素,客户决定了项目该做成什么样,具有什么功能,不需要实现哪些功能。

客户是需求的源泉,如果我们的测试用例很够很好的跟需求结合起来,比如说我们用自然语言写的测试用例如果能让用户认同,那么在这种情况下,测试用例基本等同于原始的需求文档了。需求文档是开发的凭据,这样一来根据测试用例来实现具体的需求就一定是客户所希望完成的需求了,毕竟这些需求是经过用户首肯的。这样一来,我们就等同于是让测试用例驱动了开发,这就是所谓的测试驱动开发的一种不太严谨的初体验了。

cucumber就是这样一种可以把需求转换为测试用例,让测试用例即需求的测试框架。

3

Features介绍

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

BDD 测试框架之 Cucumber 使用入门

4

Step denfinitions介绍

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

Step definition的详细说明可以参考

https://github.com/cucumber/cucumber/wiki/Step-Definitions

5

Given When then(假如 当 那么)

Cucumber的步骤中会包含Given、When、then这些词组,cucumber本身在技术实现上不区分这三个词组,但是在使用上推荐按照词组的意思来使用。

  • Given-用例开始执行前的一个前置条件,类似与编写代码setup中的一些步骤。

  • When-用例开始执行的一些关键操作步骤,类似点击元素等。

  • Then-观察结果,就是平时用例中的验证步骤。

  • And-一个步骤中如果存在多个Given操作,后面的Given可以用And替代。

  • But-一个步骤中如果存在多个Then操作,第二个开始后面的Then可以用But替代。

6

Cucumber使用

查看cucumber支持的语言 cucumber --i18n help, 查看支持语言的关键字 cucumber –i18n zh-CN(目前中文不太会用)。

先跑起来个demo吧

先编写feature文件(即需求,要做的事)

在maven工程的test目录下创建\resources\feature\demo.feature文件

demo.feature

编写代码测试代码(部分术语参考第5大项)

Calculator(测试用例部分)

RunCukesTest(执行测试部分)

pom文件

7

如何执行

选中RunCukesTest,右键run test即可

BDD 测试框架之 Cucumber 使用入门

maven test

BDD 测试框架之 Cucumber 使用入门

8

运行结果

BDD 测试框架之 Cucumber 使用入门

9

测试报告

BDD 测试框架之 Cucumber 使用入门

10

感受

用着不太习惯,正则表达式这个有点烦,测试报告应该可以在扩展,后期再去尝试改造。

优点:个人觉得给人看,逼格很高,层次分明。

参考链接:

https://www.cnblogs.com/dami520/p/3168864.html

https://www.cnblogs.com/nbkhic/p/4874889.html

BDD 测试框架之 Cucumber 使用入门 BDD 测试框架之 Cucumber 使用入门

长按关注V社北京

测试 技术 面试 DevOps

关注V社北京,关注测试,添加巨蜥小程序获取全量精品技术文章

BDD 测试框架之 Cucumber 使用入门

关注我

每天进步一点点


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

未来版图

未来版图

麻省理工科技评论 / 人民邮电出版社 / 2018-5-1 / CNY 69.80

《麻省理工科技评论》作为世界上历史悠久、影响力极大的技术商业类杂志,每年都会依据公司的科技领军能力和商业敏感度这两个必要条件,从全球范围内选取50家未来可能会成为行业主导的聪明公司。 这些聪明公司,并非都是行业巨头,甚至专利数量、公司所在地以及资金规模都不在考察范围内。 这些公司是“高精尖科技创新”与“能够保证公司利益* 大化的商业模式”的完 美融合。无论公办私营,无关规模大小,这些遍布全球......一起来看看 《未来版图》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

MD5 加密
MD5 加密

MD5 加密工具