7

我有一个应用程序。应用中有一个按钮,如果点击该按钮,则会退出应用。我正在使用UIAutomation仪器测试该应用程序。我想测试这个按钮。但在应用程序退出后,乐器停止发出异常。我想要做的是在应用程序存在之后,我想重新打开该应用程序并继续进行其余的测试。有没有其他人在同一场景?如果是这样,如果你找到了,可以请你分享一下解决方案吗?即使应用程序退出后,如何使用UIAutomation仪器继续测试iOS应用程序?

+0

只是FYI - 当你有一个存在应用程序的按钮时,Apple不喜欢它。你在为应用商店建设吗? – nycynik

+0

是的,它已经在appstore上了。它是一个信使,并有这个按钮重置应用程序(它会删除登录信息)。结果,应用程序退出。所以从技术上讲,它不是退出应用程序的按钮。 –

回答

3

这是不可能的,因为仪器一旦退出就失去与应用程序进程的连接。

如果您正在通过命令行编写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 

因此,而不是试图让仪器的同一个实例,以重新启动和重新连接到应用程序,只需要运行两个独立的脚本,一个没有你的复位和中止,以及检查所导致的其他应用程序的状态。

+0

感谢您的回复。我在想,这与UIAutomation本身无法完成。 –

0

你可以使用:

UIATarget.localTarget().deactivateAppForDuration(n); 

其中n是你想要这个程序重新启动的秒数。我希望这有帮助。

+0

取消激活应用并不是重新启动。有关详细信息,请参阅https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/StrategiesforHandlingAppStateTransitions/StrategiesforHandlingAppStateTransitions.html#//apple_ref/doc/uid/TP40007072-CH8-SW1等文档。 –

0

感谢您的答案,但文件说:“当用户通过点击主页按钮或造成其他一些应用程序来到前台退出你的应用程序,您的应用程序挂起”

那么它不重新启动但暂停?

+0

是的,它只是在几秒钟内暂停应用程序,而不是重新启动。 – coder284

相关问题