iOS Extension Plugin
目次:
1. 概要
2. プラグインのインストール
3. 使用方法
3.1 Startスクリプト
3.2 Killスクリプト
4. トラブルシューティング
1. 概要
iOS Extension Pluginは、RobotがMac OS X環境でホストされ、USBケーブル経由で接続されたiOSデバイスを自動化する場合のT-Plan Robot Enterpriseテストスクリプトに新機能を追加します。通常、同じMacマシン上で開発されたアプリケーションの自動化に使用されます。
バージョン1および2でサポートされる機能:
-
iOSデバイス上でアプリケーションを起動する
-
以前に起動したiOSアプリケーションを終了する
要件と制限事項:
-
RobotはXcodeとInstrumentsがインストールされたMac OS X上で実行されている必要があります。
-
iOSアプリケーションは、Macのファイルシステム上に存在している必要があります(.appまたは.ipa)。対象のiOSデバイス(iPhone、iPad)向けにビルドされており、ローカルにインストールされた有効なキーチェーンで署名されている必要があります。
-
iOSデバイスはUSBケーブルでMacマシンに接続されており、対象のアプリケーションはすでにデバイスにインストールされている必要があります。iOS 8以降では、Settings->Developer-Enable UI Automation オプションを有効にしておく必要があります。
-
このプラグインはMac OS Xの技術のみに依存しているため、iOS MirrorまたはVNC Server(Veency)接続経由でiOSが接続されていない場合でも、そのスクリプト(コマンド)をRobotテストスクリプトから呼び出すことができます。
このプラグインは主に、TPR言語で書かれたテストスクリプトを対象としています。Javaからプラグインスクリプトを呼び出すには、DefaultJavaTestScript.run()メソッドを使用するか、Java Script Basics文書に記載されているスクリプトインスタンスのアプローチを使用します。
ご質問やご提案がございましたら、T-Planサポートまでご連絡ください。T-Planが提供する他のプラグインの一覧については、こちらをご覧ください。
2. プラグインのインストール
このプラグインには、T-Plan Robot 3.5.2以降が必要です。プラグインをインストールするには、以下からダウンロードしてください:
オプション1:
-
ファイルを解凍し、
iosextension.jarファイルをRobotインストールディレクトリ配下のplugins/ディレクトリにコピーします。これにより、Robotは起動時にクラスを読み込むようになります。プラグインの古いバージョンは必ず削除してください。 -
Robotを起動または再起動します。
オプション2:
-
ファイルをハードドライブ上の任意の場所に解凍します。
-
TPRスクリプトでプラグインを使用する場合は、各テストスクリプトの先頭に以下のコマンドを記述してください:
Include "<location>/iosextension.jar" -
Javaテストスクリプトでプラグインを使用する場合は、
iosextension.jarファイルをJavaのクラスパスに配置してください。
プラグインをアンインストールするには、ファイルを削除するだけです。
3. 使用方法
このプラグインには、2つのJavaテストスクリプトが含まれています:
|
スクリプト名
|
説明
|
|
|
iOSデバイス上でアプリケーションを起動します。 |
|
|
Startで以前に起動したアプリケーションを終了します。 |
プラグインスクリプトは、Runコマンドを使用してTPRテストスクリプトから呼び出します。コマンドインスタンスは、Command Wizardツールを使用すると簡単に作成できます。既存のRunコマンドを編集するには、右クリックしてコンテキストメニューからPropertiesを選択します。
例:
iOSデバイス上でアプリケーションを起動し、いくつかのテストを実行してから終了します:
// iosextension.jarはスクリプトフォルダ内にあると想定します
Include "iosextension.jar"
// MyApp.appアプリケーションを起動します。.ipaファイルを使用することもできます。
// iOSデバイスが1台のみ接続されていると想定し、UDIDの指定は
// 省略します。
Run "com.tplan.ios.Start" file="/Users/robert/Downloads/MyApp.app"
// アプリケーションが正しく起動するまで数秒待機します
Wait 5s
// ここでテストを実行します
// ...
// アプリケーションを終了します
Run "com.tplan.ios.Kill"
3.1 Startスクリプト
説明
com.tplan.ios.Startスクリプトは、fileパラメータで指定されたアプリケーションを、USBケーブルで接続されたiOSデバイス上またはiOSシミュレータ上で起動します。アプリケーションはあらかじめデバイスにインストールされている必要があります。
デバイスの識別:
-
Unique Device Identifier (UDID)が
udidパラメータで指定されている場合、スクリプトは指定されたデバイスを操作します。 -
UDIDが指定されていない場合:
スクリプトは、一度に1つのアプリケーションのみが起動されるように制御します:
-
アプリケーションがすでにStartスクリプトによって起動されている場合、再起動されます(終了後、再度起動)
-
Startで以前に起動された別のアプリケーションがある場合、まずそれが終了されます。
自動シャットダウン:
-
Killスクリプトが明示的に呼び出されない限り、呼び出し元のスクリプト(TPRまたはJava)の実行が終了した後、アプリケーションは自動的に終了されます。
iOS 8のサポート:
-
iOS 8以降では、Settings->Developer-Enable UI Automationオプションを有効にしておく必要があります。これが無効の場合、アプリは画面に一瞬表示されるだけで終了してしまいます。
スクリプトはアプリケーションの起動完了に関するフィードバックを受け取らないため、Start呼び出しの後に適切な時間の遅延(Wait)を追加することをお勧めします。失敗が発生した場合は、Troubleshootingセクションを参照してください。
構文(TPRスクリプト)
Run com.tplan.ios.Start file=<file> [udid=<identifier>]
構文(Javaスクリプト)
run("com.tplan.ios.Start", "<file> [, "udid", "<identifier>"] );
※ 赤色は必須パラメータを示します
オプション
file=<file>
- アプリケーションフォルダ(.app)、またはAdHoc/Enterpriseアプリケーションアーカイブ(.ipa)への完全パス(必須)。最新の.appビルドを見つけるには、XcodeでWindow->Organizerを開き、Projectsビューを選択し、対象のアプリケーションをクリックして、FinderでDerived Dataパスを開きます。次にBuild->Productsに移動し、Debug-<target>フォルダ内で.appを探してください。自動化のために、ここから安定した場所にコピーしても構いません。
udid=<identifier>
- 操作対象デバイスのUnique Device Identifier (UDID) (任意)。デバイスのUDIDの取得方法についてはinstructionsを参照してください。UDIDが指定されていない場合、スクリプトはシステムが返す最初のデバイスに接続します(順序は特定されていません)。接続されているデバイスがない場合、スクリプトは実行中のiOSシミュレータを探します。
戻り値
アプリケーションが正常に起動した場合、コマンドは0(ゼロ)を返します。それ以外の場合は1(1)またはシステムの終了コードを返します。失敗は実行ログにも記録されます。詳細はTroubleshootingセクションを参照してください。
使用例
Usageの章を参照してください。
3.2 Killスクリプト
説明
com.tplan.ios.Killは、以前にcom.tplan.ios.Startスクリプトで起動したアプリケーションを終了します。該当するアプリケーションがない場合、スクリプトは何も行いません。
構文(TPRスクリプト)
Run com.tplan.ios.Kill
構文(Javaスクリプト)
run("com.tplan.ios.Kill");
※ 赤色は必須パラメータを示します
オプション:
なし。
戻り値
このコマンドは常に0(ゼロ)を返します。
使用例
Usageの章を参照してください。
4. トラブルシューティング
これは、よく発生するエラーとその解決策の一覧です。
-
Startスクリプトが“Failed to start Instruments daemon for 'xxx' on 'xxx' (The service is invalid.)"で失敗する
-
Startスクリプトが“Instruments Trace Error: The app must be signed with a development identity (e.g. iOS Developer)”で失敗する
-
アプリケーションが画面に一瞬表示された後、すぐに消える。