1.Appium支持在真机上进行测试,前提需要进行如下支持:
(1) 一个Apple ID和一个有效的开发者账号,具备分发证书和配置权限。
(2)iPad 或者 iPhone ,确保已经在Xcode中安装了开发权限。
(3)一个ipa文件或者源代码或者.app文件
(4) Xcode 和 Xcode 命令行开发工具
(5)Mac 上 ideviceinstaller 、 ios-deploy、libimobiledevice 已安装
2.测试ideviceinstaller 是否安装成功
通过 ideviceinstaller -u udid -i [ipa/app路径] 在iOS设备上安装app,如果成功,说明ideviceinstaller 安装成功。
3.Xcode8 移除了UI Automation,Appium 依赖它执行iOS自动化。在beta版1.6的Appium中实现了新的自动化框架 Xcuitest,所以需要执行npm uninstall -g appium npm install -g appium@1.6.4-beta安装最新的Appium 服务端。
4.安装app-inspector
npm install app-inspector -g
5.测试代码
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 中实现了新的自动化系统,不再支持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/ 修改文件夹权限。如果已经修改了文件权限,仍无法解决,可以尝试重新安装ideviceinstaller,libimobiledevice。如下:
brew uninstall ideviceinstaller
brew uninstall libimobiledevice
brew install --HEAD libimobiledevice
brew link --overwrite libimobiledevice
brew install ideviceinstaller
brew link --overwrite ideviceinstaller
(2)执行testcase的时候提示 “bin/bash Scripts/bootstrap.sh -d' exited with code 1”,在 /.npm-packages/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent 路径下执行 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/” ,执行 brew install carthage 问题解决。
(3)修改了上述问题后,执行时会报错 /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 项目,用Xcode打开对WebDriverAgentLib 和 WebDriverAgentRunner 进行签名。