[我们有一个可以通过Appium运行自动化测试的应用。我们可以通过Appium在设备和模拟器上启动该应用。但是,应用程序会在Appium发送2-3次点击命令后挂起并冻结。冻结后,Appium在屏幕上找不到任何其他元素。
我们考虑使用Xcode 6.0.1 Instruments编写测试脚本,但是当脚本运行时,应用程序也会挂起。
[在手动测试时,应用程序按预期执行。仅当我们尝试使用Appium或Xcode's Instruments在其上运行自动化时,它才会挂起。我们正在使用Appium v1.3.0-beta1和Xcode 6.0.1。
这似乎与this question类似,但是我们的测试设备已经在8.0.2上。
因此,事实证明,在iOS 8中,记录过多的数据(尤其是在记录API响应时)会在自动化期间导致竞争状况。通过禁用应用程序的日志记录,我们能够解决我们的自动化冻结问题。
该解决方案的发现归功于@tbao对这篇文章的出色分析:https://discuss.appium.io/t/app-freezes-when-automated/1030/8
有一种方法可以在运行时重新启动Appium Server,这有助于我们解决冻结问题:
请查看我的博客以获取更多详细信息:
[在iOS上自动化Web应用程序(Safari)时遇到了相同的问题,通过执行安装命令从appium 1.15.1切换到Mac上可用的1.16.0-beta.3解决了该问题:
npm install -g appium@beta --unsafe-perm=true --allow-root