web-dev-qa-db-ja.com

UIオートメーション機器をコマンドラインから実行できますか?

ターミナルからUIAutomation機器を開く方法はありますか?

AppleScriptを記述してAppleのUIAutomationツールを開き、テストするアプリケーションをロードすることは可能ですか?

スクリプトまたはコマンドラインを使用してUIAutomationを開き、テストするアプリを選択し、テストスクリプトを選択する方法はありますか?

54
Vijay
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>

ただし、注意すべき重要な点がいくつかあります。

  1. デバイスでスクリプトを実行する場合を除き、-wパラメーターは不要です。シミュレーターでスクリプトを実行する場合は、コマンドからこのパラメーターを省略します。
  2. 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バージョンに応じて、他の人にとっては異なる場合があります。また、このパスを二重引用符で囲むことを忘れないでください。

  3. Path_to_script.jsは、javascriptで記述された自動化スクリプトが保存される場所への絶対パスである必要があります。また、このパスを二重引用符で囲むことを忘れないでください。

  4. 最後に、出力結果のパスは、出力結果を保存するパスです。また、このパスを二重引用符で囲むことを忘れないでください。

これらは私が見落としていた点であり、そのため上記のエラーの一部が発生していました。

55

コマンドラインから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

Apple at: http://developer.Apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/instrumentsからコマンドラインの詳細を参照してください。 .1.html

さらに、iPhone iOS UIAutomationで実行されるコマンドラインでStacktraceユーザーから投稿 コマンドラインを使用してInstrumentsを使用できますか?

これがお役に立てば幸いです:)

22
user887803

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/'

しばらく更新されていないために機能しなかったコマンドラインラッパーを書いた他の人に触発されて(そして、復活させたいと思ったので理解するのが難しいように思えた)、私はより透明で、より軽く、したがって、保守が容易になると考えています。

プロジェクトは github およびコンパニオン ブログ投稿 にあります。

8
idStar

長いinstrumentsコマンドの代わりに、使いやすいラッパーを作成しました。 https://github.com/enriquez/uiauto

それを使用するには、次のことを行うだけです。

  1. シミュレータ用にXcodeでプロジェクトをビルドします(デバイスサポートは近日提供予定)。
  2. プロジェクトの.xcodeprojまたは.xcworkspaceがある場所にcdします。
  3. 実行uiauto exec path/to/your/script.js
6

Xcodeのすべての新しいバージョンでは、テンプレートパスが変更されているようです。テンプレートのパスを見つける最良の方法の1つはinstruments -sコマンドは、使用可能なすべてのテンプレートをリストします。

4
harish

私もこのトピックに興味を持ちました。私が実際に見つけたのはこれです 参照 これは、事前定義されたテンプレート、結果を保存する場所、実行するターゲットデバイス、およびその他のパラメータを使用して端末から機器を起動する方法があることを示しています。ターミナルinstrumentsを入力して、パラメーターリストを取得することもできます。

この方法でiPhoneでUIオートメーションを実行することに失敗しました。私はほとんどデバイスに興味があるので、シミュレータやMacアプリを試したことはありません。私は質問を投稿しました ここSO しかし、応答がないため、この方法で楽器を使用している人は多くないと思います。

しかし、t Apple開発者フォーラム (ログインする必要があります)の短いスレッドがあり、それが実行可能であることを示唆しているので、実行することを望んでいます。後で試してみますが、もし成功したら、ここに解決策を投稿します。

3
yoosiba

shell環境でUIイベントを記録/再生するツールがあり、Rubyでスクリプトを作成できます。

インタラクティブなiPhoneアプリケーション開発 http://github.com/wookay/libcat

2
WooKyoung Noh

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/
0
barryjones

端末インストゥルメント-sでこのコマンドを入力すると、入力後にテンプレートパスが取得されます。

instruments -t <template path> <Application file path> -e UIASCRIPT <script.js> UIARESULTPATH <result_path>
0
Prasad Rampilla