Protractor-引入Cucumber
上一篇博文中我们已经在package.json中写入了cucumber依赖库,在执行 npm install 之后,cucumber就已经下载好了。接下来要做的是修改conf.js,请参考下图:

去年我搭这个框架的时候,如果要引入Cucumber,只需要将framework设置为cucumber即可。但是Protractor做了更改,此处需要设置为custom,并且需要增加frameworkPath这一项,这就是我去年搭建的框架跑不起来的原因。
下面我们以在亚马逊上搜索一本书为例子来编写featrue和实现步骤。
新建一个featrue文件,例如amazonTest.feature
Feature: Search book Scenario: Search a book
Given I open Amazon website
When I search book "Agile Estimating and Planning"
Then I should see the book "Agile Estimating and Planning" in search result
amazonTest.feature
再创建相应的实现步骤amazonTestSteps.js
var testAmazonWrapper = function(){
this.Given(/^I open Amazon website$/, function(next) {
next();
});
this.When(/^I search book "([^"]*)"$/, function(book, next) {
next();
});
this.Then(/^I should see the book "([^"]*)" in search result$/, function(book,next) {
next();
});
};
module.exports = testAmazonWrapper;
amazonTestSteps.js
最后执行Protractor conf.js运行一下,运行结果如下:

------写在后面的话------
请允许我再唠叨两句题外话,在引入Cucumber之前,请思考一下是否有必要使用Cucumber。众所周知,Cucumber是为了实现BDD时采用的工具,也就是说,只有我们在做BDD的时候,才需要考虑使用Cucumber。如果是为了让测试看起来高大上,看起来很有技术含量,而去盲目引入Cucumber,反而会增加编写测试的工作量,写出来的Feature也没有起到应有的作用。唠叨完毕。
文中使用的框架和代码已经上传到github,小伙伴们若需要可自取:https://github.com/SallyZY/ProtractDemo
如需转载,请注明出处,这是对他人劳动成果的尊重~
Protractor-引入Cucumber的更多相关文章
- Protractor - 怎样运行
前一篇设置好了Protractor基本运行环境,那怎样运行Protractor呢? 要运行我们的测试脚本,至少需要配置好两个文件: ---Package.json ---conf.js Package ...
- Protractor - 环境设置
去年出于好奇搭建过一个Protractor+Cucumber的测试框架,当时项目上并没有用到AngularJS,所以框架能运行起来之后没有再深入了.最近新项目引入了AngularJS,想起去年搭的那个 ...
- 基于Appium的UI自动化测试
为什么需要UI自动化测试 移动端APP是一个复杂的系统,不同功能之间耦合性很强,很难仅通过单元测试保障整体功能.UI测试是移动应用开发中重要的一环,但是执行速度较慢,有很多重复工作量,为了减少这些工作 ...
- 在Grunt task中集成Protractor
Protractor是专为AngularJS应用程序编写的UI自动化测试框架.前端构建有很多构建工具,比如Grunt.Gulp等.一般我们会把这些构建工具作为集成集成的脚本执行工具.所以如果把Prot ...
- uiautomator+cucumber实现自动化测试
前提 由于公司业务要求,所以自动化测试要达到以下几点: 跨应用的测试 测试用例可读性强 测试报告可读性强 对失败的用例有截图保存并在报告中体现 基于以上几点,在对自动化测试框架选型的时候就选择了uia ...
- 行为驱动:Cucumber + Selenium + Java(四) - 实现测试用例的参数化
在上一篇中,我们介绍了Selenium + Cucumber + Java框架下的使用Tags对测试用例分组的实现方法,这一篇我们用数据表格来实现测试用例参数化. 4.1 什么是用例参数化 实际测试中 ...
- cucumber soapui test web services
没有UI,所以不需要Selenium. 首先Cucumber: 每个web service形成一个feature文件,描述完成的业务场景. 是否引入参数? 如果引入参数,可能需要根据某种方式保存参数, ...
- 如何用ABP框架快速完成项目 - 自动化测试 - 前端angular e2e protractor
要想快速完成一个项目, 自动化是很关键很有用的一块. 自动化测试比人工测试快很多. 特别是在回归测试中. 实践证明, 虽然投入了时间在写自动化测试代码上, 但是在回归测试中节省了大量的时间,同时及时发 ...
- 自动化测试框架Cucumber和RobotFramework的实战对比
转自: http://www.infoq.com/cn/articles/cucumber-robotframework-comparison 一.摘要 自动化测试可以快速自动完成大量测试用例,节 ...
随机推荐
- Oracle对时间的相关操作
目录导航: 1. 年操作 2. 月操作 3. 周操作 4. 天操作 5. 时操作 6. 分操作 7. 秒操作 1.年操作 SELECT add_months(SYSDATE, -12) FROM du ...
- Python语法速查: 15. 常用数据结构
返回目录 本篇索引 (1)array (2)bisect (3)deque (4)defaultdict (5)namedtuple (6)heapq (7)itertools (1)array ar ...
- MAC 下将libpomelo连接到cocos2d-x
摘要:借助GYP将libpomelo连接到Cocos2d-x项目并使项目能与服务端成功连接. 配置:OS X 10.9.4 + Xcode 6.0 + Cocos2d-x-3.2 一.部署GYP(Ge ...
- Flask中获取参数(路径,查询,请求体,请求头)
上一篇中已经讲述了:HTTP协议向服务器传参有几种途径{ 链接 } 在Flask中同样通过这4中传参途径进行归纳: 1. URL中路径参数的获取: 拓展: # 路由参数/路径参数:http://127 ...
- ccf-csp201809题解
目录 ccf-csp201809题解 1. 201809-1 卖菜 题目描述 解析 通过代码 2. 201809-2 买菜 题目描述 解析 通过代码 3.201809-3 元素选择器 题目描述 解析 ...
- IT兄弟连 HTML5教程 HTML5表单 新增的表单属性3
9 novalidate novalidate是属性规定在提交表单时不应该验证form和input域.novalidate属性适用于的<input>类型有:text.search.url ...
- python __iter__和__getitem__区别
__getitem__ 单独实现这个魔法函数,可以让这个类成为一个可迭代的对象,并且可以通过使用下标获取类中元素值下标的元素 class Library(object): def __init__(s ...
- 分析Jackson的安全漏洞CVE-2019-12086
CVE-2019-12086 Description A Polymorphic Typing issue was discovered in FasterXML jackson-databind 2 ...
- 深入selenium模块基础操作
selenium模块的基本操作 一.模拟浏览器 谷歌.Firefox.Safari等浏览器 browser=webdriver.Chrome() browser=webdriver.Firefox ...
- PHP制作的掷色子点数抽奖游戏实例
PHP制作的掷色子点数抽奖游戏实例,通过掷色子点数来达到抽奖的效果,为抽奖活动增添一些趣味性. 我们将在html页面中写下如下的html结构代码,.wrap用来放置色子和提示信息,#prize则是用来 ...