安裝依賴:
Appium iOS真機測試依賴於中心第三方軟件套件:libimobiledevice, 用homebrew很容易安裝
brew install libimobiledevice
除了依賴libimobiledevice以外, Appium支持真機在iOS 9.3以上版本使用Xcode 8+ 還要依賴於ios-deploy,通過npm和homebrew很容易安裝:
npm install -g ios-deploy
brew install ios-deploy
(對於hybrid或者web測試, 還需要遵循ios-webkit-debug-proxy設置指令)
XCUITest driver工作方式是在真機上安裝一個名為WebDriverAgent-Runner的助手應用程序, 通過該應用程序,測試應用程序是自動化的。雖然這在理論上是簡單的,但是開發和測試的代碼簽名和配置文件的環節可能會讓人有點頭疼。
基本(自動)配置:
使用自動配置策略最簡單的方法是用Appium的XCUITest Support在IOS真機上獲取啟動和運行,有2種方式:
* 使用xcodeOrgId和xcodeSigningId這2個desired capabilities:
{
"xcodeOrgId": "<Team ID>",
"xcodeSigningId": "iPhone Developer"
}
* 在你的文件系統的某個地方創建一個.xcconfig文件並添加以下內容到文件中:
DEVELOPMENT_TEAM = <Team ID>
CODE_SIGN_IDENTITY = iPhone Developer
在這兩種情況下,Team ID都是由Apple生成的一個獨特的10個字符的字符串,它被分配給您的團隊。
可以用你的開發者賬號找到你的Team ID. 登錄你的開發者賬號developer.apple.com/account, 在側欄中點擊Membership. 你的Team ID會在團隊名稱下面的Membership Information部分顯示.
也可以在keychain里面找到你的iphone開發者證書,team ID就列在"Organizational Unit"字段下。
注意:這些互斥策略;要么使用xcodeConfigFile,要么用xcodeOrgId和xcodeSigningId組合.
一旦配置成功,要開始測試只不過是在desired capability指定為一個真機的udid問題
如果這個不起作用,通常會在Appium server日志中顯現出類似如下錯誤:
XCUITest xcodebuild exited with code '65' and signal 'null'.
這一般意味着必要的簽名未設置正確,通過手工配置來做
基本(手工)配置
WebDriverAgent目錄:
/usr/local/n/versions/node/10.4.0/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
* 找到appium的安裝盤:
$ which appium
/usr/local/n/versions/node/10.4.0/bin/appium 用n管理器安裝的node指向
->/usr/local/n/versions/node/10.4.0/lib/node_modules/appium/build/lib/main.js
* 進入appium安裝盤:/path/where/installed/bin/appium, 在以下路徑下找到WebDriverAgent
/usr/local/n/versions/node/10.4.0/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
我的appium安裝盤地址:
/Applications/Appium.app/Contents/Resources/app/node_modules/appium-webdriveragent
* 打開terminal到上面的目錄下, 執行以下命令來配置項目:
$ mkdir -p Resources/WebDriverAgent.bundle
$ ./Scripts/bootstrap.sh -d
用Xcode打開WebDriverAgent.xcodeproj
以下2個目標在"General"選項卡下都選"Automatically manage signing"並選擇你的Development Team,應該會自動選擇Signing Ceritificate.
如下圖所示: WebDriverAgentLib、WebDriverAgentRunner
如果Signing Provisioning profile失敗則需要先去Build Settings選項卡下面把bundle Id修改成xcode接受的bundle id
返回到WebDriverAgentRunner 目標下的"General" 選項卡, 應該可以看到創建了一個provisioning profile如下圖:
執行成功后手機上會有一個webDriveragent
參考:
https://testerhome.com/topics/8074
https://blog.csdn.net/yinshuilan/article/details/80626314