Appium 是一個(gè)自動(dòng)化測(cè)試框架,可與 native大审、混合和移動(dòng) web 應(yīng)用程序一起使用。它使用WebDriver (Facebook開(kāi)源)協(xié)議驅(qū)動(dòng) iOS座哩、Android 和 Windows 應(yīng)用程序徒扶。
Appium 支持多種語(yǔ)言。
Appium iOS 測(cè)試環(huán)境的搭建
安裝 appium 有兩種方式根穷,一種是通過(guò)命令行終端方式姜骡,一種是 Appium Desktop。
我使用的是 Appium Desktop 屿良,這個(gè)自帶圖形界面圈澈,安裝也簡(jiǎn)單的。
首先下載桌面版 Appium Desktop 尘惧,并安裝康栈。
正常工作要確保5個(gè)前提條件:
- iOS 設(shè)備系統(tǒng)必須是 iOS 9.3及以上
- macOS 系統(tǒng)必須是10.11 或10.12
- Xcode 版本為 Xcode 8及以上
- Appium 版本為1.6及以上
- 安裝所需依賴(lài)庫(kù),包括:
node # brew install node
npm # brew install npm
carthage # brew install carthage
模擬器測(cè)試的話這些基本就可以了喷橙。
是否安裝成功可以用 appium-doctor 驗(yàn)證啥么。
終端執(zhí)行安裝命令
npm install -g appium-doctor
安裝成功后執(zhí)行
appium-doctor # 這個(gè)命令包含 android 的依賴(lài)庫(kù)或軟件
// 或者
appium-doctor --ios
現(xiàn)在我們來(lái)啟動(dòng) Appium Desktop !
點(diǎn)擊 Start ,進(jìn)入 Server 界面贰逾,如果一切正常悬荣,會(huì)如下圖所示。
在點(diǎn)擊右上角 搜索 按鈕 進(jìn)入 inspector session 界面疙剑。
Appium 有多語(yǔ)言設(shè)置氯迂,想要中文的同學(xué)們践叠,可以進(jìn)行設(shè)置哦~
View ---> Languages ---> 中文
這里呢,我寫(xiě)了一個(gè)簡(jiǎn)單的 iOS AppiumDemo嚼蚀,進(jìn)行模擬器測(cè)試禁灼。
main.storyboard 里,拖拽了一個(gè)輸入框和一個(gè)按鈕轿曙。
按鈕有一個(gè)事件匾二。
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (IBAction)buttonAction:(id)sender {
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"點(diǎn)擊了按鈕" message:nil preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"確定" style:UIAlertActionStyleCancel handler:nil];
[alert addAction:cancel];
[self presentViewController:alert animated:YES completion:nil];
}
@end
指定模擬器 iPhone 6 ,系統(tǒng)版本 10.0拳芙,運(yùn)行程序察藐。
回到 inspector session 界面設(shè)置所需功能。
你可以先看看 所需功能文檔舟扎。
{
"platformName": "iOS", # 平臺(tái)名稱(chēng) iOS / Android ...
"platformVersion": "10.0", # 系統(tǒng)版本
"deviceName": "iPhone 6", # 設(shè)備名稱(chēng)
"newCommandTimeout": "300", # Appium服務(wù)器待appium客戶(hù)端發(fā)送新消息的時(shí)間分飞。默認(rèn)為60秒
"bundleId": "BB.AppiumDemo", # iOS 包名
"onReset": true # true:不重新安裝APP,false:重新安裝app
}
我是拿bundleID 喚起原有APP 進(jìn)行測(cè)試的睹限,所以要事先在模擬器編譯譬猫,確認(rèn)有當(dāng)前bundleID的項(xiàng)目,才能啟動(dòng)成功羡疗。
你也可以用 app 當(dāng)作key, value 是絕對(duì)路徑的.ipa染服、.app文件。
下一步我們來(lái)啟動(dòng)會(huì)話叨恨,成功后會(huì)出現(xiàn)檢查器界面柳刮。
到這里簡(jiǎn)單的環(huán)境配置基本完成。
下面說(shuō)說(shuō)檢查器導(dǎo)航欄按鈕的功能痒钝。
基本操作已經(jīng)介紹完了秉颗,下篇將進(jìn)行 Appium 與 python 實(shí)現(xiàn) iOS 模擬器自動(dòng)化測(cè)試。
補(bǔ)充:
- Appium 自帶的 WebDriverAgent 存在 bug送矩,下載 FaceBook 的 WebDriverAgent 蚕甥。編譯后替換 Appium Desktop
/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent 目錄文件。
# 終端下載 cd 到 桌面
cd Desktop
# 然后從 git 拉取項(xiàng)目
git clone https://github.com/facebook/WebDriverAgent
# 下載完成后進(jìn)入文件編譯
cd WebDriverAgent
# 運(yùn)行初始化腳本
./Scripts/bootstrap.sh
編譯后的 WebDriverAgent 拷貝起來(lái)栋荸,替換掉 /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent 路徑中 WebDriverAgent 文件就可以了菇怀。
這個(gè) 編譯過(guò)的 WebDriverAgent,后面真機(jī)測(cè)試會(huì)用到晌块,先保留一下爱沟。
-
模擬器或真機(jī)要開(kāi)啟 UI Automation。
Settings ---> Developer ---> Enable UI Automation