【BDD】calabash 和 cucumber的使用

本文介绍的是BDD的开发新框架之一-----Calabash-ios

Calabash是一款开源的跨平台UI测试工具,目前支持iOS和Android。它使用Cucumber作为测试核心,Cucumber是一个在敏捷团队十分流行的自动化的功能测试工具,它使用接近于自然语言的特性文档进行用例的书写和测试,支持多语言和多平台。

Calabash-ios 简单步骤:

1.安装ruby gem

2.安装calabash-cucumber,安装后你的mac机器上应该能够使用calabash-ios命令了

3.git clone或者svn co下来你IOS代码,IOS工程主目录是有一个.xcodeproj的文件的,找到它进入到该目录

4.calabash-ios setup

5.calabash-ios gen

6.In Xcode, build your project using the -cal scheme

7.cucumber

以下是详细步骤:

前期准备工作

Calabash是一个ruby的库文件,为避免Calabash在运行中出现各种问题,尽量保证电脑中的ruby环境是最新版的,或者2.1以上版本。mac系统 10.11自带的是2.0版本的.需要升级到最新版本 建议升级ruby 用RVM 工具统一管理ruby库。

详细步骤:点击此处查看

如果使用RVM升级时出错!!还有大招:通过ruby-install安装(一定要安装到RVM中方便统一管理ruby) 方法如下:

Using ruby-install with RVM:

$ ruby-install --rubies-dir ~/.rvm/rubies ruby 2.2.2

安装完成之后再用RVM 的查看ruby库列表 然后设置默认ruby库:点击此处查看

一:基础环境搭建 Calabash-ios

Calabash-ios官方wiki 提供了三种方式的xcode工程环境配置。点击查看

其中最合理的应该是:添加Calabash Config配置文件这种,相比修改debug config这种来说,不会影响项目中原有的config文件,相比添加 -cal targert这种来说,也不会影响项目中工程文件的修改,当项目中导入其他文件时需要同时导入到原target和-cal target中,而添加Calabash Cofig这种则不会。

需要注意的是,在根据Calabash cofig这种方法配置环境时该步骤:

Create a Gemfile in the same directory as your .xcodeproj:

source "https://rubygems.org"

gem "calabash-cucumber", ">= 0.16", "< 2.0"

需要通过 bundle(一种管理ruby gem库的工具) 来管理。bundle 管理库命令(bundle(安装),bundle update(更新)):类似于 pod uodate (更新库),pod install(安装库)。配置文件 Gemfile 也类似于 podfile

1.安装bundle方法

在命令行输入$:sudo gem install bundler

然后输入密码,就会自动安装。

2.在项目根目录中创建文件名为 Gemfile 的文件,文件中写入如下内容(需要注意ruby的官方镜像毕竟慢,可以使用大淘宝的镜像):

source "https://ruby.taobao.org"

gem "calabash-cucumber", ">= 0.16", "< 2.0"

3安装相应的calabash-cucumber库.

命令行切换到工程根目录下 输入$:bundle

4.如果需要更新Gemfile文件中的库版本,可以通过:

切换到工程根目录 命令行输入$:bundle update

二:测试用例编写及其运行 Cucumber

1.创建cucumber必要的文件

命令行 切换到工程根目录$:calabash-ios gen

就会创建feature的文件夹 文件夹下放着测试用例编写,必须的文件:相关目录结构及其功能,(cucumber的使用)可以看此处

2.编写cucumber测试用例

相信通过上面cucumber的使用这一文章已经基本了解cucumber的目录结构:下面就开始编写简单地测试用例吧:

cucumber 测试用例编写需要一定的时间去了解它的基本的语法的,所以不要着急先看看一个非常全面的demo吧:官方demo当然先大体看下demo了解下结构和语法,要想真正看懂需要继续补充一些知识。以下就是需要结合demo看的文章(大部分文章都是从calabash官方wikiCucumber 官方wiki中可以获得):

1).cucumber 目录结构介绍 官方wiki

2).calabash 官方wiki --- Calabash iOS Ruby API

3).calabash 官方wiki --- Query Language

4).calabash 官方wiki --- public API

5).最重要的还是看demo 进行学习其他demo

3.运行cucumber测试用例

运行cucumber的时候特别注意:

1).首先运行 对应的项目.如果项目中打印出以下语句及Calabash正常开启:

DEBUG CalabashServer:222 | Creating the server:

DEBUG CalabashServer:223 | Calabash iOS server version: CALABASH VERSION: 0.16.4

2).保证工程中的calabash-ios.framework和calabash-cucumber ruby gem库并且最新:如果不一致可以通过此方法升级

#下载最新的 .framwork

项目根目录$: bundle exec calabash-ios download

#更新calabash-cucumber ruby gem库

项目根目录$:bundle update

3).命令行运行 cucumber 执行命令。需要注意的是:『cucumber运行,启动的模拟器』 一定要跟 『运行工程时,启动的模拟器』 一致否则会发生错误

查看工程运行的模拟器UUID两种方法:

1.方法一 :Xcode -> Window -> Devices 查看对应的模拟器UUID

2.方法二 :命令行输入$: xcrun instruments -s devices

执行 cucumber 命令语句:

#运行某个tag场景方法

CMD �$: bundle exec cucumber DEVICE_TARGET="90E602DD-376F-4EF9-9B82-208D9016B61D"  --tags @travis

运行整个feature场景方法

CMD �$: bundle exec cucumber DEVICE_TARGET="90E602DD-376F-4EF9-9B82-208D9016B61D"  features/slider.feature

4.cucumber运行tags 和 feature 的使用

1)cucumber 官方wiki --- tags的使用

2)cucumber 官方wiki --- 运行 feature 的方法

3)ruby 学习网站

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,670评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,928评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,926评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,238评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,112评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,138评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,545评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,232评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,496评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,596评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,369评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,226评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,600评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,906评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,185评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,516评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,721评论 2 335

推荐阅读更多精彩内容