美文网首页自动化测试Jenkins+Sonar使用
升级Xcode 8 后如何在IOS真机上应用Appium

升级Xcode 8 后如何在IOS真机上应用Appium

作者: 测试小白_stone | 来源:发表于2017-04-26 11:26 被阅读117次

    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 进行签名。

    相关文章

      网友评论

        本文标题:升级Xcode 8 后如何在IOS真机上应用Appium

        本文链接:https://www.haomeiwen.com/subject/wglizttx.html