calabash-android Win10 入门笔记

 
概述
    Calabash是一个BDD的UI自动化验收测试框架,能够利用该框架编写和执行测试用例,支持Android和IOS应用。
 

快速开始android

包括如下内容:
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 :ios

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

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

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

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

set-executionpolicy restricted
以下图:
 
 
更新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
 
准备要测试的应用

下载官方提供的例子代码
为了测试要构建一个有网络访问权限的APK,因此在<manifest />标签内添加以下语句
<uses-permission android:name="android.permission.INTERNET" />

点击菜单Build->Generate Signed APK

点击Create new... 根据提示信息建立keystore

点击OK,而后一直下一步到完成。androidStudio默认会成成app-release.apk。
编写测试用例APK
1)启动powershell进入calabash-sandbox模式,进入到工程目录下:

2)执行命令 calabash-android gen 生成features目录
 

3)建立第一个测试用例,编辑文件features/my_first.feature

这个fearure文件里面的步骤使用的预约义的步骤,也就是测试代码系统已经存在了;也能够本身编写步骤,那样须要本身编写测试代码。
4) 在设备上运行测试用例
运行测试用例以前,须要先对apk进行重签名,在calabash-sandbox模式下运行
calabash-android resign ./app/app-release.apk

重签名不须要每次运行都要进行,通常须要一次就够了
运行测试用例只须要执行以下命令便可(确保手机和电脑已经经过USB链接,而且开启调试模式)
calabash-android run ./app/app-release.apk
若是遇到如下错误
是由于咱们的系统是中文的,字符集为GBK编码,要经过chcp 65001 修改为UTF8编码再次运行
 
下面采用中文的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
一样的方式运行用例 截图
 
OK,一个简单的用例运行完成。GOOD LUCK!
 
PS: 写的有些仓促,若是有错误还请指出!多谢!!
相关文章
相关标签/搜索