1.Appium支持在真機(jī)上進(jìn)行測(cè)試,前提需要進(jìn)行如下支持:
(1) 一個(gè)Apple ID和一個(gè)有效的開發(fā)者賬號(hào),具備分發(fā)證書和配置權(quán)限。
(2)iPad 或者 iPhone ,確保已經(jīng)在Xcode中安裝了開發(fā)權(quán)限。
(3)一個(gè)ipa文件或者源代碼或者.app文件
(4) Xcode 和 Xcode 命令行開發(fā)工具
(5)Mac 上 ideviceinstaller 、 ios-deploy、libimobiledevice 已安裝
2.測(cè)試ideviceinstaller 是否安裝成功
通過 ideviceinstaller -u udid -i [ipa/app路徑] 在iOS設(shè)備上安裝app,如果成功,說明ideviceinstaller 安裝成功。
3.Xcode8 移除了UI Automation,Appium 依賴它執(zhí)行iOS自動(dòng)化。在beta版1.6的Appium中實(shí)現(xiàn)了新的自動(dòng)化框架 Xcuitest,所以需要執(zhí)行npm uninstall -g appium npm install -g appium@1.6.4-beta安裝最新的Appium 服務(wù)端。
4.安裝app-inspector
npm install app-inspector -g
5.測(cè)試代碼
File appDir = new File(System.getProperty("user.dir")+"/apps");
File app = new File(appDir, "xiaoqin.ipa");
String udid = "*******";
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "iOS");
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "9.3.5");
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "***");
capabilities.setCapability(MobileCapabilityType.UDID, udid);
capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
//xcode 8 中實(shí)現(xiàn)了新的自動(dòng)化系統(tǒng),不再支持uiautomaton
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "XCUITest");
URL url =newURL("http://127.0.0.1:4723/wd/hub");
driver = new IOSDriver<MobileElement>(url, capabilities);
6.遇到問題及解決方案
(1)“Could not connect to lockdownd” 可以通過 sudo chmod -R 777 /var/db/lockdown/ 修改文件夾權(quán)限。如果已經(jīng)修改了文件權(quán)限,仍無法解決,可以嘗試重新安裝ideviceinstaller,libimobiledevice。如下:
brew uninstall ideviceinstaller
brew uninstall libimobiledevice
brew install --HEAD libimobiledevice
brew link --overwrite libimobiledevice
brew install ideviceinstaller
brew link --overwrite ideviceinstaller
(2)執(zhí)行testcase的時(shí)候提示 “bin/bash Scripts/bootstrap.sh -d' exited with code 1”,在 /.npm-packages/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent 路徑下執(zhí)行 bin/bash Scripts/bootstrap.sh -d 提示“ Please make sure that you have Carthage installed (https://github.com/Carthage/Carthage), We are expecting that carthage installed in /usr/local/bin/” ,執(zhí)行 brew install carthage 問題解決。
(3)修改了上述問題后,執(zhí)行時(shí)會(huì)報(bào)錯(cuò) /Library/Developer/Xcode/DerivedData/WebDriverAgent-asdmomtkchbvroehfoovpsuuovoh/Build/Products/Debug-iphoneos/WebDriverAgentRunner-Runner.app 找不到。 在 /.npm-packages/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent 下找到 /WebDriverAgent 項(xiàng)目,用Xcode打開對(duì)WebDriverAgentLib 和 WebDriverAgentRunner 進(jìn)行簽名。