Appium 是一個自動化測試框架,可與 native、混合和移動 web 應用程序一起使用。它使用WebDriver (Facebook開源)協(xié)議驅動 iOS、Android 和 Windows 應用程序。
Appium 支持多種語言。
Appium iOS 測試環(huán)境的搭建
安裝 appium 有兩種方式,一種是通過命令行終端方式,一種是 Appium Desktop。
我使用的是 Appium Desktop ,這個自帶圖形界面,安裝也簡單的。
首先下載桌面版 Appium Desktop ,并安裝。

正常工作要確保5個前提條件:
- iOS 設備系統(tǒng)必須是 iOS 9.3及以上
- macOS 系統(tǒng)必須是10.11 或10.12
- Xcode 版本為 Xcode 8及以上
- Appium 版本為1.6及以上
- 安裝所需依賴庫,包括:
node # brew install node
npm # brew install npm
carthage # brew install carthage
模擬器測試的話這些基本就可以了。
是否安裝成功可以用 appium-doctor 驗證。
終端執(zhí)行安裝命令
npm install -g appium-doctor
安裝成功后執(zhí)行
appium-doctor # 這個命令包含 android 的依賴庫或軟件
// 或者
appium-doctor --ios

現在我們來啟動 Appium Desktop !

點擊 Start ,進入 Server 界面,如果一切正常,會如下圖所示。

在點擊右上角 搜索 按鈕 進入 inspector session 界面。


Appium 有多語言設置,想要中文的同學們,可以進行設置哦~
View ---> Languages ---> 中文

這里呢,我寫了一個簡單的 iOS AppiumDemo,進行模擬器測試。
main.storyboard 里,拖拽了一個輸入框和一個按鈕。

按鈕有一個事件。
#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:@"點擊了按鈕" 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,運行程序。
回到 inspector session 界面設置所需功能。
你可以先看看 所需功能文檔。

{
"platformName": "iOS", # 平臺名稱 iOS / Android ...
"platformVersion": "10.0", # 系統(tǒng)版本
"deviceName": "iPhone 6", # 設備名稱
"newCommandTimeout": "300", # Appium服務器待appium客戶端發(fā)送新消息的時間。默認為60秒
"bundleId": "BB.AppiumDemo", # iOS 包名
"onReset": true # true:不重新安裝APP,false:重新安裝app
}
我是拿bundleID 喚起原有APP 進行測試的,所以要事先在模擬器編譯,確認有當前bundleID的項目,才能啟動成功。
你也可以用 app 當作key, value 是絕對路徑的.ipa、.app文件。
下一步我們來啟動會話,成功后會出現檢查器界面。

到這里簡單的環(huán)境配置基本完成。
下面說說檢查器導航欄按鈕的功能。







基本操作已經介紹完了,下篇將進行 Appium 與 python 實現 iOS 模擬器自動化測試。
補充:
- 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 拉取項目
git clone https://github.com/facebook/WebDriverAgent
# 下載完成后進入文件編譯
cd WebDriverAgent
# 運行初始化腳本
./Scripts/bootstrap.sh
編譯后的 WebDriverAgent 拷貝起來,替換掉 /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent 路徑中 WebDriverAgent 文件就可以了。
這個 編譯過的 WebDriverAgent,后面真機測試會用到,先保留一下。
-
模擬器或真機要開啟 UI Automation。
Settings ---> Developer ---> Enable UI Automation
