ターミナルからUIAutomation
機器を開く方法はありますか?
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ファイルへのパスです。私にとって、その道は
/ Users/fwasim/Library/Application Support/iPhone Simulator/5.0/Applications/AA6BA2E1-D505-4864-BECC-29ADEE28194D/name_of_application.app
このパスは、シミュレータで実行しているiOSバージョンに応じて、他の人にとっては異なる場合があります。また、このパスを二重引用符で囲むことを忘れないでください。
Path_to_script.jsは、javascriptで記述された自動化スクリプトが保存される場所への絶対パスである必要があります。また、このパスを二重引用符で囲むことを忘れないでください。
最後に、出力結果のパスは、出力結果を保存するパスです。また、このパスを二重引用符で囲むことを忘れないでください。
これらは私が見落としていた点であり、そのため上記のエラーの一部が発生していました。
コマンドラインからUIAutomationを開始するiOS5ベータ4のXCode 4.2から開始できます。コマンドラインから、自動化テンプレートを指すインスツルメントを実行し、実行するテストスクリプトと結果の宛先パスを環境変数として指定できます。
instruments -w -t /Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate -e UIASCRIPT
上記はこのソースURLからのものです。 http://dev-ios.blogspot.com/2011/07/starting-uiautomation-via-command-line.html
さらに、iPhone iOS UIAutomationで実行されるコマンドラインでStacktraceユーザーから投稿 コマンドラインを使用してInstrumentsを使用できますか?
これがお役に立てば幸いです:)
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/'
しばらく更新されていないために機能しなかったコマンドラインラッパーを書いた他の人に触発されて(そして、復活させたいと思ったので理解するのが難しいように思えた)、私はより透明で、より軽く、したがって、保守が容易になると考えています。
長いinstruments
コマンドの代わりに、使いやすいラッパーを作成しました。 https://github.com/enriquez/uiauto
それを使用するには、次のことを行うだけです。
uiauto exec path/to/your/script.js
。Xcodeのすべての新しいバージョンでは、テンプレートパスが変更されているようです。テンプレートのパスを見つける最良の方法の1つはinstruments -s
コマンドは、使用可能なすべてのテンプレートをリストします。
私もこのトピックに興味を持ちました。私が実際に見つけたのはこれです 参照 これは、事前定義されたテンプレート、結果を保存する場所、実行するターゲットデバイス、およびその他のパラメータを使用して端末から機器を起動する方法があることを示しています。ターミナルinstruments
を入力して、パラメーターリストを取得することもできます。
この方法でiPhoneでUIオートメーションを実行することに失敗しました。私はほとんどデバイスに興味があるので、シミュレータやMacアプリを試したことはありません。私は質問を投稿しました ここSO しかし、応答がないため、この方法で楽器を使用している人は多くないと思います。
しかし、t Apple開発者フォーラム (ログインする必要があります)の短いスレッドがあり、それが実行可能であることを示唆しているので、実行することを望んでいます。後で試してみますが、もし成功したら、ここに解決策を投稿します。
shell環境でUIイベントを記録/再生するツールがあり、Rubyでスクリプトを作成できます。
インタラクティブなiPhoneアプリケーション開発 http://github.com/wookay/libcat
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/
端末インストゥルメント-sでこのコマンドを入力すると、入力後にテンプレートパスが取得されます。
instruments -t <template path> <Application file path> -e UIASCRIPT <script.js> UIARESULTPATH <result_path>