即使在应用退出后,如何使用 UIAutomation 工具继续测试 iOS 应用?
Posted
技术标签:
【中文标题】即使在应用退出后,如何使用 UIAutomation 工具继续测试 iOS 应用?【英文标题】:How to continue testing an iOS app, using UIAutomation instrument, even after the app exits? 【发布时间】:2012-05-04 18:28:37 【问题描述】:我有一个应用程序。应用程序中有一个按钮,如果单击该按钮,将退出应用程序。我正在使用 UIAutomation 工具测试应用程序。我想测试这个按钮。但是在应用程序退出后,仪器停止给出异常。我想做的是在应用程序存在后,我想重新打开应用程序并继续进行其余的测试。有没有其他人遇到过同样的情况?如果是这样,如果您找到了,请分享解决方案吗?
【问题讨论】:
仅供参考 - 苹果不喜欢你有一个按钮存在应用程序。您是为应用商店构建的吗? 是的,它已经在应用商店上架了。它是一个信使,有这个按钮可以重置应用程序。(它会删除登录信息)因此,应用程序退出。所以从技术上讲,它不是退出应用程序的按钮。 【参考方案1】:这是不可能的,因为 Instruments 退出后会失去与应用进程的连接。
如果您从命令行编写 UI 自动化脚本,您可以在第一个自动化脚本退出应用程序后运行第二个自动化脚本,然后检查以确保一切都已重置。
instruments \
-D [trace document] \
-t [instruments template] \
/path/to/Bundle.app \
-e UIARESULTSPATH [directory to store test output] \
-e UIASCRIPT reset_the_app.js
instruments \
-D [trace document] \
-t [instruments template] \
/path/to/Bundle.app \
-e UIARESULTSPATH [directory to store test output] \
-e UIASCRIPT check_that_the_app_is_reset.js
因此,与其尝试让同一个 Instruments 实例重新启动并重新附加到应用程序,只需运行两个单独的脚本,一个用于执行重置和中止,另一个用于检查应用程序的结果状态.
【讨论】:
感谢您的回复。我也在想这不能使用 UIAutomation 本身来完成。【参考方案2】:你可以使用:
UIATarget.localTarget().deactivateAppForDuration(n);
其中 n 是您希望此应用重新启动的秒数。我希望这有帮助。
【讨论】:
停用应用程序绝不是重新启动。有关更多信息,请参阅developer.apple.com/library/ios/documentation/iPhone/Conceptual/… 之类的文档。【参考方案3】:感谢您的回答,但文档说:
“当用户通过点击 Home 按钮或使其他应用程序进入前台退出您的应用程序时,您的应用程序将暂停。”
所以它不是重新启动而是暂停?
【讨论】:
是的,它只是暂停应用程序提到的时间(以秒为单位)并且它没有重新启动。以上是关于即使在应用退出后,如何使用 UIAutomation 工具继续测试 iOS 应用?的主要内容,如果未能解决你的问题,请参考以下文章
我正在尝试使用 Framework-7 Vuejs 创建一个应用程序。即使在使用 Firebase 退出应用程序后,我也想让我的用户保持登录状态
即使在使用异步任务后,当我尝试传递第二个意图时,我的应用程序也会退出并显示错误消息