calabash-android Win10 入门笔记

it2022-05-09  22

参考官方文档: https://developer.xamarin.com/guides/testcloud/calabash/   概述     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-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   准备要测试的应用 下载官方提供的例子代码 https://github.com/xamarin/test-cloud-samples/raw/master/Quickstarts/downloads/CreditCardValidator.AndroidStudio.zip并通过androidStudio打开,如下图 为了测试要构建一个有网络访问权限的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'假如(/^等待主界面加载完成$/) dowait_for_element_exists("* marked:'creditCardNumberText' ", timeout: 60)end当(/^在输入框输入 "([^"]*)"$/) do |arg1|enter_text "* marked:'creditCardNumberText'", arg1end当(/^点击 "([^"]*)" 按钮$/) do |arg1|tap_when_element_exists( "* marked:'#{arg1}'")end那么(/^我能看到信息 "([^"]*)" 显示在屏幕上$/) do |arg1|wait_for_text(arg1, timeout:60)end 同样的方式运行用例 截图   OK,一个简单的用例运行完成。GOOD LUCK!   PS: 写的有些仓促,如果有错误还请指出!多谢!!

转载于:https://www.cnblogs.com/ouguangqian/p/5506116.html

相关资源:数据结构—成绩单生成器

最新回复(0)