• 更新:

    1. IOS 原生态提供的 UIAutomation 接口没有发现有支持获取应用程序内部的文件。Appium Sever 是基于 UIAutomation 的。换句话说,pullFile 在 IOS 系统下,没法实现。此路不通。
    2. 调查 iTools、PP 助手,发现两者是基于 iTunes 提供的 COM 协议做的二次开发。iTunes 是闭源的,真噁心~~~

    对于手机上自动化测试,有一些测试用例没法通过界面上的控件来判定执行结果。之前的想法是基于日志来判定,测试的时候,手机端生成日志,PC 端获取日志。解决方案如下:

    1. 采用类似 iTools 的方式,获取手机上的日志文件。
    2. 采用 Socket 通信的方式。手机往固定的组播地址上发送日志报文,PC 端加入组播,获取报文。这种方式如果想使用单播或者 TCP 方式,可以在界面上隐藏设置 IP 和单播的组件来反馈说明。具体自己取舍。

    目前,个人偏向第第 2 种。

    以上如有错误,请及时联系本人,个人邮箱 Email 告知我,谢谢。

  • 更新:

    1. 下载了 Server 1.3.4 版本 查看 Device 目录下的 iOSController.js 文件 发现如下代码: iOSController.pullFile = function (remotePath, cb) { logger.debug("Pulling " + remotePath + " from sim"); if (this.realDevice) { return cb(new NotYetImplementedError(), null); }

    Appium Server 判断是否是 IOS 真机设备,若是真机设备,则返回未实现错误提示。
    另外,查看库的发布历史和分支,该接口对 IOS 系统都未实现。TODO:Android 是通过 adb 支持的。

    下一步打算:

    1. 查看 IOS 原生态的 UIAutomation 看看是否能够支持?若有进展会及时更新。现在还不了解 UIAutomation,还需查资料。