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: 寫的有些倉促,若是有錯誤還請指出!多謝!!
相關文章
相關標籤/搜索