有沒有辦法通過終端打開UIAutomation
儀器?UI自動化儀器是否可以從命令行運行?
是否可以編寫AppleScript
來打開Apple的UIAutomation
工具並加載要測試的應用程序?
請問有沒有辦法通過腳本或通過命令行我們可以打開UIAutomation
並選擇要測試的應用程序,以及選擇測試腳本?
有沒有辦法通過終端打開UIAutomation
儀器?UI自動化儀器是否可以從命令行運行?
是否可以編寫AppleScript
來打開Apple的UIAutomation
工具並加載要測試的應用程序?
請問有沒有辦法通過腳本或通過命令行我們可以打開UIAutomation
並選擇要測試的應用程序,以及選擇測試腳本?
instruments -t /Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/\
PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate \
<full_path_to_application> -e UIASCRIPT <path_to_script.js> \
-e UIARESULTSPATH <output_results_path>
爲xcode的> = 4.5
instruments -t
/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/\
AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate \
<full_path_to_application> -e UIASCRIPT <path_to_script.js> \
-e UIARESULTSPATH <output_results_path>
爲xcode的> = 6。1
instruments -w <device ID> -t \
/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/\
AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate \
<full_path_to_application> -e UIASCRIPT <path_to_script.js> \
-e UIARESULTSPATH <output_results_path>
有一些重要的事情,雖然注意:
full_path_to_application是您的模擬器創建的.app文件的路徑。對我來說,道路是
/用戶/ fwasim /庫/應用程序支持/ iPhone模擬器/ 5.0 /應用/ AA6BA2E1-D505-4864-BECC-29ADEE28194D/name_of_application.app
這條道路對於其他人可能會有所不同,具體取決於您在模擬器上運行的iOS版本。還請記住將此路徑放在雙引號中。
path_to_script.js應該是完整的路徑,以便您的自動化腳本在JavaScript中保存。還請記住將此路徑放在雙引號中。
最後輸出結果路徑是您想要保存輸出結果的路徑。還請記住將此路徑放在雙引號中。
這些是我一直想念的點,因此得到了上面提到的一些錯誤。
上面的示例中,您在哪裏有-w參數? – 2014-01-23 00:52:18
我興奮地做同樣的事情,但我有這樣的錯誤「樂器[2760:1207]無法解釋路徑'(空)' 儀器跟蹤錯誤:錯誤開始錄製」但路徑不爲空或空。你有好主意嗎? – 2014-04-07 14:31:09
@yucelbayram對此的任何意見無法解釋路徑'(null)'? – 2014-04-25 21:36:05
我也對這個話題很intrested。我居然發現這是reference這表明有辦法從預定義模板,其中結果應存放的位置,並在它應該運行的目標設備,以及其他參數,終端啓動儀器。您也可以輸入終端instruments
來獲取參數列表。
我未成功,在iPhone上運行的UI自動化這種方式。我沒有嘗試模擬器或Mac應用程序,因爲我主要對設備感興趣。我發佈了一個問題here on SO,但由於缺乏任何迴應,我認爲沒有多少人以這種方式使用儀器。
但有希望得到它的運行,因爲爲t his short thread on apple developer forum(您需要登錄),該建議是可以做到的。我會在稍後嘗試,如果我能成功,我會在這裏發佈解決方案。如果你能設法使它順暢地運行,就像我(可能還有其他人)會感興趣的一樣。
不錯的發現....你有沒有得到任何地方,但這? – jkp 2011-02-10 19:09:04
不,不幸的是。現在我只關注測試,我將需要運行,稍後(如果我有時間的話),我將重點關注以自動方式運行它們的方式。最糟糕的情況 - 我將使用Sikuli(sikuli.org)來自動執行此操作,但它是這樣的解決方法,我想避免這種情況... – yoosiba 2011-02-11 09:15:59
如果此命令行工具完全適用,我會更加自信。我的目標是測試自動化一個CI,但我甚至不能在模擬器上工作。 我也嘗試了Leaks.trace模板。模擬器出現,試圖啓動應用程序,但失敗並出現「未知錯誤」。的確非常令人沮喪。應用程序文件可以,使用Instruments-GUI運行它可以正常工作。 在Apple網站上似乎沒有提示該命令選項。也許,他們忘了呢? :) – 2011-03-10 09:13:22
有與shell環境記錄/重放UI事件的工具,可以書面方式腳本紅寶石。
互動的iPhone應用程序開發 http://github.com/wookay/libcat
。當我們測試客戶端應用程序時,通常他們期望不向他們的proj文件製作/添加任何代碼。無論如何,我喜歡你的想法libcat。謝謝 – Vijay 2011-05-22 17:39:37
開始通過命令行UIAutomation 你可以現在就做,開始的XCode 4.2的iOS5測試版4 從命令行,您可以運行指着自動化模板工具,並指定作爲環境變量,您要執行的測試腳本和結果的目標路徑:
instruments -w -t /Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/ Automation.tracetemplate -e UIASCRIPT
以上是從這個來源網址: http://dev-ios.blogspot.com/2011/07/starting-uiautomation-via-command-line.html
查看命令行的更多細節從蘋果在: http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/instruments.1.html
加上從堆棧跟蹤用戶張貼在命令行與iPhone的iOS UIAutomation 3210
運行希望這會有所幫助 - 祝你有美好的一天:)
感謝您的鏈接,我的腳本正確運行在樂器上,但仍然無法從命令行運行。我似乎無法讓它通過模擬器運行。有關通過-w參數的任何想法? – 2011-09-08 07:52:38
您可能已經完成了工作,但-w的參數應該是連接設備的UDID – Stew 2011-09-21 23:57:21
隨着Xcode的每個新版本模板路徑似乎都會改變。找出模板路徑的最佳方法之一是instruments -s
命令,它將列出所有可用的模板。
'instruments -s'也打印出有關設備的有用信息。 – 2014-11-19 19:52:48
類型的終端儀器此命令-s,你得到的模板路徑類型後:
instruments -t <template path> <Application file path> -e UIASCRIPT <script.js> UIARESULTPATH <result_path>
不是長instruments
命令,我寫了一個包裝,易於使用:https://github.com/enriquez/uiauto
要使用它,你只需要執行以下操作:
uiauto exec path/to/your/script.js
。更新和測試的Xcode 6.0.1:
instruments -w 'iPhone 5s' \
-t '/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate' \
'/Users/sohail/Library/Developer/CoreSimulator/Devices/7232A640-A9D2-4626-A2AD-37AFFF706718/data/Containers/Bundle/Application/E71B915E-051D-4BEF-9083-34416D02EC91/RoadRunnerRadar.app' \
-e UIASCRIPT '/Users/sohail/Developer/clients/acme/roadrunnerradar/ACMERoadRunnerRadarAutomationTests/TestRunner.js' \
-e UIARESULTSPATH '/Users/sohail/Developer/clients/acme/roadrunnerradar/ACMERoadRunnerRadarAutomationTests/TestResults/'
別人誰寫的那些一段時間沒有更新,因此沒有工作的命令行包裝的啓發(似乎很難理解,因爲我試圖復活它們),我寫了一個bash shell腳本,我相信它會更透明,更輕,因此更容易維護。
做對的iOS模擬器的正確方法如下:
instruments -w 'iPhone 5s (9.1)' \
-t '/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate' \
'justTheNameOfYourAppDontAddExtension' \
-e UIASCRIPT '/Users/barry/Dropbox/Public/login.js' \
-e UIARESULTSPATH '/Users/barry/Dropbox/Public/
如何自iOS5的測試版,這應該是完全可能的。 – 2011-07-27 18:35:22