Calabash-ios自动化测试

设置执行案例的模拟器

Cucumber 有一个配置文件,在执行 Cucumber 运行案例时,首先会调用此文件。

在Cucumber执行的目录,即 features 目录同级,建一个.config(隐藏文件,在终端里使用命令)目录。config目录下,新建一个 Cucumber.xml文件 将如下内容copy 至此文件保存:

default: -r features -r features_ios_support --tags ~@wip --tags ~@manual --tags ~@ignore --tags ~@stg --tags ~@android_only DEVICE_TARGET='iPhone 6 (8.1 Simulator)'
  • 1
  • -r:加载目录 可以指定加载顺序,ruby 特性后加载的类的方法会将先加载的覆盖
  • –tags:可以给指定案例添加 tag 执行时,只执行选定 tag
  • DEVICE_TARGET:指定使用哪个版本的模拟器运行案例,如果是真机直接写 DeviceID

可以使用如下命令查看本机设备列表:

➜  ~  instruments -s devices
    Known Devices:
    Rigel.Xu (8.4) [cac0899307dfb6f6bec507fcad641fe6b76ca3c9]
    iPad Retina (8.4 Simulator) [ACFDE3E0-85F8-4DC3-A6A5-7537769F0CE3]
    iPhone 6 (8.1 Simulator) [11CA78D9-395D-4FBE-9347-6B3CC20B75AC]
    iPhone 6 Plus (8.4 Simulator) [85C3A98F-BDBB-4BBF-A485-D2301E4ED5BA]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

webView操作及滚动

使用scoll(“webView”) 是无法滚动 webView 的,在 Calabash 的 GoogleGroup 里查到可以使用 swipe 来滚动,亲测可用swipe :up, offset:{x:100,y:250}外 webView 操作某一元素可以使用如下方式:

touch("webView css:'img#banner1'")
  • 1

css之后是 css 的选择器,为使我们的测试脚本写起来方便,建议在web 页面开发的时间为不同的控件使用不同的 id 。

查看 Calabash 源码

安装完 Calabash-Cucumber 后,可以在对应 ruby 的 gems 里找到相应版本的 Calabash-Cucumber,如:

ruby-2.2.2/gems/Calabash-Cucumber-0.14.3
  • 1

使用编辑器打开整个目录,可以看到如下结构:

bin
doc
dylibs
features
features-skeleton
lib
LICENSE
scripts
staticlib

Calabash 的所有东西,都在这里了,核心源码在 lib/Calabash-Cucumber 目录下,有时如果不知道一些命令,或者查不到解决方法,可以直接看源码。

附:

Calabash官网

Google Group

Calabash-iOS Wiki

你可能感兴趣的:(移动端,测试技术)