【问题标题】:Different test results from Instrument and command line来自 Instrument 和命令行的不同测试结果
【发布时间】:2015-04-04 11:39:11
【问题描述】:

我有一个用UIAutomation写的自动化测试脚本。如果我从仪器运行它,所有测试都会通过。如果我从命令行运行它,其中一个测试用例将失败并导致测试脚本运行终止。

失败的测试用例是关于触发UIAActivityIndictor,然后显示一个警报窗口。

我在网上做了一些搜索,有人说命令行比 Instrument 快。有时,您需要确保UIAElement 有效。但是,就我而言,在那个测试用例中,命令行似乎丢失了应用程序的UIAElements 层次结构。 logElementTree 的结果只有目标和应用程序,根本没有窗口。 UI 似乎被冻结了。

任何建议都会有所帮助。

【问题讨论】:

  • 您是否尝试过在故障线之前添加延迟?在我的测试中,我不得不故意放慢某些部分的速度,因为自动化工具的速度足以让应用程序处于过渡状态,例如对话框仍在消失时。控制台可能已经将您的代码加速到足以导致此类问题的速度。
  • 是的,我添加了延迟。但问题是测试以某种方式丢失了整个视图层次结构。
  • 我注意到 Instruments 有很多不稳定的行为,但我的所有问题都是与时间相关的问题,所以我希望它也能对你有用!
  • 警报窗口是来自 iOS 还是来自您的应用程序?某些操作可能会弄乱target 和mainWindow 引用。

标签: ios-ui-automation


【解决方案1】:

我也遇到过类似的问题。当 UI 完全冻结时,意味着应用程序已进入无限循环。在我的情况下,输出巨大的 NSLog 是原因。要检查: 1)在你的脚本中的某个时间点睡得很香 2)运行脚本 3)将xcode附加到应用程序:调试->附加到进程->您的应用程序的进程 4)等到冻结发生。手动确认 5)在xcode中按暂停执行 6) 现在您可以在堆栈跟踪中看到应用挂起的位置

【讨论】:

    猜你喜欢
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 2012-07-18
    • 2013-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多