English Japanese
English Japanese

iosextension

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:

  1. ファイルを解凍し、iosextension.jarファイルをRobotインストールディレクトリ配下のplugins/ディレクトリにコピーします。これにより、Robotは起動時にクラスを読み込むようになります。プラグインの古いバージョンは必ず削除してください。

  2. Robotを起動または再起動します。

オプション2:

  1. ファイルをハードドライブ上の任意の場所に解凍します。

  2. TPRスクリプトでプラグインを使用する場合は、各テストスクリプトの先頭に以下のコマンドを記述してください:
    Include "<location>/iosextension.jar"

  3. Javaテストスクリプトでプラグインを使用する場合は、iosextension.jarファイルをJavaのクラスパスに配置してください。

プラグインをアンインストールするには、ファイルを削除するだけです。

3. 使用方法

このプラグインには、2つのJavaテストスクリプトが含まれています:

スクリプト名

説明

com.tplan.ios.Start


iOSデバイス上でアプリケーションを起動します。

com.tplan.ios.Kill

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)”で失敗する

  • アプリケーションが画面に一瞬表示された後、すぐに消える。