内容简介: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对这些关键词的处理是一样的,但是我们在使用的时候需要按照场景区分。
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即可
maven test
8
运行结果
9
测试报告
10
感受
用着不太习惯,正则表达式这个有点烦,测试报告应该可以在扩展,后期再去尝试改造。
优点:个人觉得给人看,逼格很高,层次分明。
参考链接:
https://www.cnblogs.com/dami520/p/3168864.html
https://www.cnblogs.com/nbkhic/p/4874889.html
|
|
长按关注V社北京 测试 丨 技术 丨 面试 丨 DevOps 关注V社北京,关注测试,添加巨蜥小程序获取全量精品技术文章 |
关注我
每天进步一点点
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 赵童鞋带你入门PHP(六) ThinkPHP框架入门
- Cucumber框架入门篇
- Koa框架基础快速入门
- 框架 | FastDFS 入门到应用
- Authlib强大OAuth框架入门
- Ginkgo测试框架入门(golang)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
RGB HSV 转换
RGB HSV 互转工具
HEX CMYK 转换工具
HEX CMYK 互转工具