使用 Appium 自动化 iOS 8 应用程序会导致应用程序冻结
Posted
技术标签:
【中文标题】使用 Appium 自动化 iOS 8 应用程序会导致应用程序冻结【英文标题】:Automating iOS 8 app with Appium causes app freeze 【发布时间】:2014-10-16 22:44:45 【问题描述】:我们有一个使用 Appium 运行自动化测试的应用。我们可以通过 Appium 在设备和模拟器上启动应用。但是,在 Appium 发送 2-3 次点击命令后,应用程序会挂起并冻结。冻结后,Appium 在屏幕上找不到任何其他元素。
我们曾考虑使用 Xcode 6.0.1 Instruments 编写测试脚本,但当脚本运行时,应用程序也会挂起。
手动测试时,应用程序按预期运行。只有当我们尝试使用 Appium 或 Xcode 的 Instruments 在其上运行自动化时,它才会挂起。我们正在使用 Appium v1.3.0-beta1 和 Xcode 6.0.1。
这似乎是与this question 类似的问题,但我们的测试设备已经在 8.0.2 上。
【问题讨论】:
【参考方案1】:事实证明,在 ios 8 中,记录太多数据(尤其是记录 API 响应的情况)可能会导致自动化期间出现争用情况。通过禁用应用程序的日志记录,我们能够解决自动化冻结问题。
感谢@tbao 对这篇文章的精彩分析发现了解决方案:https://discuss.appium.io/t/app-freezes-when-automated/1030/8
【讨论】:
【参考方案2】:有办法在运行时重启 Appium Server,这帮助我们克服了冻结问题:
请查看我的博客了解更多详情:
http://www.qaautomationsimplified.com/android/restarting-appium-server-improve-various-server-freezing-issues-may-improve-execution-time/
【讨论】:
【参考方案3】:在 iOS 上自动化 Web 应用程序 (Safari) 时遇到了同样的问题,通过执行 install 命令从 appium 1.15.1 切换到 Mac 上可用的 1.16.0-beta.3 解决了这个问题:
npm install -g appium@beta --unsafe-perm=true --allow-root
【讨论】:
以上是关于使用 Appium 自动化 iOS 8 应用程序会导致应用程序冻结的主要内容,如果未能解决你的问题,请参考以下文章
Appium+python自动化16-启动ios上Safari浏览器
如何使用 Appium 在真实设备上自动化 3rd 方 ios 应用程序