上一节整理了 Calabash-Android 的安装过程,这一节找一个测试 demo 来体验一下 UI 测试
测试 apk,不需要源码,这里使用微信最新版本,将 apk 拷贝到 E:\Android_Test 目录
需要一个 android 签名,本例中使用 Android SDK 自带的默认 debug.keystore
按 Win 键 +R 键,输入 cmd,打开 cmd 后,输入 cd /d E:\Android_Test,然后在该目录下运行 calabash-android gen,按回车确认,生成用例目录结构,如图
可以看到在 E:\Android_Test 目录下生成了一个 features 目录,features 目录下有个 my_first.feature 文件,这个就是用例文件,另外生成了两个文件夹,一个 step_definitions 用来存放一些自定义 step 文件,一个 support 存放初始化文件
由于 Calabash-Android 不能直接测试运行 apk,需要给 apk 重新签名,在 cmd 中输入 calabash-android resign weixin622android580.apk,如图
如果没有任何提示,则说明重新签名成功
注:重新签名有时候会提示找不到 keystore,这时就需要根据签名信息设置签名文件,输入 calabash-android setup 进行签名设置
首先我们编辑前面生成的 my_first.feature 文件,内容如下
Feature: 启动功能
Scenario: 启动应用,并给应用截图
Then I take a screenshot
然后在 E:\Android_Test 目录运行 calabash-android build weixin622android580.apk 会发现如下错误,可以看出是 GBK 编码导致的,我们需要修改 cmd 控制台编码,输入 chcp 65001 进行编码切换,然后继续运行 calabash-android build weixin622android580.apk
编译成功后,查看提示知道,在 E:\Android_Test 目录下面生成了一个 test_servers/******************_0.5.12.apk 文件,这就是用于安装到测试机上面的测试服务 apk
最后,被测 apk 重新签名了,测试服务也编译成功了,下面就是执行写的用例文件 my_first.feature 了,输入 calabash-android run weixin622android580.apk,注意先将编码切换成 GBK,否则会导致用例中有中文出现执行失败,执行 chcp 936 切换 GBK
可以看到,用例已经成功执行,在测试目录下生成了一张微信闪屏截图
说明:在 ubuntu 下面使用同样的步骤执行简单的用例,有一个优点就是不用进行编码切换,省去了 cmd 里面容易出错的编码切换问题