calabash-android Win10 入门笔记

时间:2022-04-09 03:25:06
 
概述
    Calabash是一个BDD的UI自动化验收测试框架,可以利用该框架编写和执行测试用例,支持Android和IOS应用。
 

快速开始

包括以下内容:
1)安装calabash-sandbox ——介绍了怎么去安装calabash-sandbox和使用calabash-sand去安装gem包
2)准备要测试的应用 —— 介绍了怎么去准备一个待测试应用
3)编写测试用例 —— 编写一个测试用例验证17位的信用卡卡号不通过并且显示错误提示
4)执行测试用例 —— 本地运行测试用例
 
在win 10 上安装calabash-sandbox
Calabash Sandbox 需要Windows 10 和Powershell.  管理员模式打开powershell,设置执行策略不受限制
set-executionpolicy unrestricted

接下来, 下载并安装 Calabash Sandbox :

(New-ObjectSystem.Net.WebClient).DownloadString("https://raw.githubusercontent.com/calabash/install/master/install-windows.ps1") | iex

命令运行后,窗口会有如下提示信息:

Done!Installed: calabash-ios: 0.16.4calabash-android: 0.5.15xamarin-test-cloud: 1.1.2Execute'calabash-sandbox' to get started!

最后, 重置执行策略受限:

set-executionpolicy restricted
如下图:
calabash-android Win10 入门笔记
 
 
更新calabash-sandbox,命令行运行如下命令:
gem install calabash-cucumber
gem install calabash-android
gem install xamarin-test-cloud
 
重新安装calabash-sandbox,命令行运行如下命令:
rm -r -fo "${env:USERPROFILE}\.calabash\sandbox"
 set-executionpolicy unrestricted
 (New-Object System.Net.WebClient).DownloadString("https://raw.githubusercontent.com/calabash/install/master/install-windows.ps1") | iex
 set-executionpolicy restricted
 
准备要测试的应用

下载官方提供的例子代码
calabash-android Win10 入门笔记
为了测试要构建一个有网络访问权限的APK,所以在<manifest />标签内添加如下语句
<uses-permission android:name="android.permission.INTERNET" />
calabash-android Win10 入门笔记
点击菜单Build->Generate Signed APK
calabash-android Win10 入门笔记
calabash-android Win10 入门笔记

点击Create new... 根据提示信息创建keystore
calabash-android Win10 入门笔记
点击OK,然后一直下一步到完成。androidStudio默认会成成app-release.apk。
编写测试用例APK
1)启动powershell进入calabash-sandbox模式,进入到工程目录下:
calabash-android Win10 入门笔记
2)执行命令 calabash-android gen 生成features目录
calabash-android Win10 入门笔记
 
calabash-android Win10 入门笔记
3)创建第一个测试用例,编辑文件features/my_first.feature
calabash-android Win10 入门笔记
这个fearure文件里面的步骤使用的预定义的步骤,也就是测试代码系统已经存在了;也可以自己编写步骤,那样需要自己编写测试代码。
4) 在设备上运行测试用例
运行测试用例之前,需要先对apk进行重签名,在calabash-sandbox模式下运行
calabash-android resign ./app/app-release.apk
calabash-android Win10 入门笔记
重签名不需要每次运行都要进行,一般需要一次就够了
运行测试用例只需要执行如下命令即可(确保手机和电脑已经通过USB连接,并且开启调试模式)
calabash-android run ./app/app-release.apk
如果遇到以下错误
calabash-android Win10 入门笔记
是因为我们的系统是中文的,字符集为GBK编码,要通过chcp 65001 修改成UTF8编码再次运行
calabash-android Win10 入门笔记
 
下面采用中文的Feature,要在头文件中添加# language: zh-CN
同样的方法编写feature文件示例内容为:
# language: zh-CN
功能: 信用卡功能验证
信用卡数字必须精确到16位

场景: 信用卡数字过长
假如 等待主界面加载完成
当 在输入框输入 "99999999999999999"
并且 点击 "validateButton" 按钮
那么 我能看到信息 "Credit card number is too long." 显示在屏幕上

场景: Credit card number is too short
假如 等待主界面加载完成
当 在输入框输入 "999999999999999"
并且 点击 "validateButton" 按钮
那么 我能看到信息 "Credit card number is too short." 显示在屏幕上
在calabas_steps.rb文件中的代码为
require 'calabash-android/calabash_steps'

假如(/^等待主界面加载完成$/) do
wait_for_element_exists("* marked:'creditCardNumberText' ", timeout: 60)
end

当(/^在输入框输入 "([^"]*)"$/) do |arg1|
enter_text "* marked:'creditCardNumberText'", arg1
end

当(/^点击 "([^"]*)" 按钮$/) do |arg1|
tap_when_element_exists( "* marked:'#{arg1}'")
end

那么(/^我能看到信息 "([^"]*)" 显示在屏幕上$/) do |arg1|
wait_for_text(arg1, timeout:60)
end
同样的方式运行用例 截图
calabash-android Win10 入门笔记
 
OK,一个简单的用例运行完成。GOOD LUCK!
 
PS: 写的有些仓促,如果有错误还请指出!多谢!!