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

相關問題