ADBエクステンション (JA)-工事中
このエクステンションの機能はモバイルコマンドを追加しました。このプラグインは今後メンテナンスされることはありません。
1.概要
についてADB拡張プラグインを使用してT-Plan Robot Enterpriseスクリプトに新機能を追加します。アンドロイド・オーバーADB接続のAndroidデバイスをテストします。これには以下が含まれる:
デバイス上のローカル.apkファイルからアプリケーションをインストールおよびアンインストールします、
クライアントマシンとデバイス間でファイルをコピーする、
デバイス上でシェルコマンドを実行する。
このプラグインは、主にTPR言語.Javaからプラグイン・スクリプトを呼び出すにはDefaultJavaTestScript.run()メソッドを使うか、あるいはJavaスクリプトの基礎の文書がある。
このプラグインは、完全なソースコードで「そのまま」提供されます。自由に変更して再利用することができます。NetBeansやEclipseのようなIDEでコードをコンパイルするには、以下のライブラリをプロジェクトのクラス・パスに置いてください:
ロボットジャーファイルをT-Plan Robot Enterpriseのインストールフォルダから選択してください。ddmlib.jarより<Android_SDK_home>/tools/lib
ご質問やご提案がございましたらTプラン・サポート.T-Planが提供する他のプラグインのリストについては、以下を参照してください。これ.
2.プラグインのインストール
このプラグインには
バージョン2以上必要T-Planロボット3.4.2以上。バージョン1は、T-Plan Robot 3.4.1、または2013年7月15日以降にリリースされたその他の上位リリースで動作します。
への有効なパスが設定されている必要があります。Android SDKのインストール.設定するには以下のいずれかを行う:
オプション1:ロボットログインウィンドウのパスを「アンドロイド・オーバーADB接続タイプを選択。次に接続を使用して接続を確立し、ユーザー設定へのパスを保存する。
オプション 2:スタート編集->環境設定ロボットのメニューからを選択する。「アンドロイド・オーバーADBパネルにパスを入力し、次のように閉じます。OK.
プラグインをダウンロードする
https://downloads.t-plan.com/releases/robot/plugins/adbextension_v3.zip
バージョンの違いについては変更履歴.
オプション1:
ファイルを解凍して
adbextension.jarファイルをプラグインディレクトリを作成します。これでRobotが起動時にクラスをロードするようになります。古いバージョンのプラグインは必ず削除してください。ロボットを起動または再起動します。
オプション 2:
ファイルをハードドライブ上の任意の場所に解凍します。
TPRスクリプトでプラグインを使用する場合は、以下のコマンドを各スクリプトの先頭に追加してください:
"<location>/adbextension.jar" をインクルードする。
Javaスクリプトでプラグインを使用する場合は
adbextension.jarファイルをJavaクラス・パスに追加する。
プラグインをアンインストールするには、ファイルを削除してください。
3.使用方法
プラグインには7つのJavaスクリプトが含まれています:
スクリプト名 | 説明 |
デバイスにアプリケーションをインストールする。 | |
デバイスからアプリケーションをアンインストールします。 | |
ローカルファイルをデバイスにプッシュ(コピー)する。 | |
デバイスからファイルをプル(コピー)する。 | |
デバイス上でシェルコマンドを実行する。 | |
デバイス上でアクティビティ(アプリケーション)を開始する(バージョン2以降)。 | |
デバイス上のアプリケーションを終了させる(バージョン 2 以降)。 |
プラグインスクリプトは、TPRスクリプトからコマンド実行.コマンドインスタンスはコマンドウィザードツールを使用します。既存の実行コマンドを編集するには、そのコマンドを右クリックしてプロパティをコンテキストメニューに追加する。
バージョン2ではアプリケーション・テスト・ライフサイクル..apk形式のアプリケーションは、以下のように簡単にインストール、起動、停止/終了、アンインストールができる:
// ADB Extensionプラグインをロードする Include "C:㊟ADB_Extension.jar"
// テストアプリケーションをインストールする Run "com.tplan.adb.Install" file="C:¦temp¦myapp.apk" // テストアプリケーションを起動する Run "com.tplan.adb.Start"
// テストを行う
// アプリケーションを再起動する Run "com.tplan.adb.Stop"
"com.tplan.adb.Start "を実行する。
// ここでさらにテストを行う...
// アプリケーションのアンインストール Run "com.tplan.adb.Uninstall"
Android SDK APIは、実行中のADB操作を停止する手段を提供していないためインストール,アンインストール,プッシュそしてプルスクリプトをキャンセルすることはできない。このような操作の進行中にユーザーがスクリプトを手動で停止することはできるが、スクリプトは完了するまでバックグラウンドで実行され続ける。たとえば、スクリプトがInstallを実行している間にスクリプトを停止した場合、他の理由で失敗しない限り、アプリケーションはいずれにせよインストールされる可能性が高い。これはシェルスクリプトとスタートそしてストップここで、APIは進行中のシェル呼び出しをキャンセルすることができる。
3.1 スクリプトのインストール
説明
についてcom.tplan.adb.Installスクリプトは、ローカルの.apkファイルから、現在接続されているAndroidデバイスにアプリケーションをインストールする。このスクリプトは"adbインストール" コマンドを実行する。
アプリケーションが正常にインストールされると、スクリプトはADB_INSTALLED_PACKAGE変数にアプリケーションパッケージ名を指定します。この値は、アンインストール時にアンインストールスクリプトを使用します。パッケージ名は別のタスクで .apk ファイルから抽出されるため、.apk 形式が更新された場合など、インストールは正常に終了しても変数の作成に失敗することがあります。そのような場合は、T-Plan サポートまでご報告ください。
バージョン2でも_adb_installed_アクティビティ変数にメイン・アプリケー ション・アクティビティ名を指定します。この変数は、パッケージ名とともにスタートスクリプトを使用します。呼び出し元のテストスクリプトが1つのアプリケーションだけをインストールする場合、パッケージやアクティビティをスタート,ストップまたはアンインストールスクリプトを使用します。最後にインストールされたアプリケーションにフォールバックする。
インストールを確認するには、スクリプトの終了コードがゼロであることをテストします。あるいは"pmリストパッケージ"コマンドを使用する。シェルスクリプトを実行し、アプリケーション・パッケージがリストされていることを確認してください。を参照してください。例セクションを参照してください。
あらすじ(Tprスクリプト)
走るcom.tplan.adb.Installファイル=<apk_ファイル[reinstall=<false|true>]。
あらすじ(Javaスクリプト)
走る("com.tplan.adb.Install"、"file"、"<apk_file>" [, "reinstall", < "false" | "true" >]);
* 赤色は必須パラメータ
オプション
ファイル=<apk_file
- ローカルファイルシステム内の .apk ファイルへのフルパス。ファイルを標準パスのいずれかに相対的に指定するには、次のようなデフォルト変数のいずれかを使用します:
INSTALL_DIR- ロボットのインストールディレクトリプロジェクト・ディレクトリ- スクリプトが属するプロジェクトのホームフォルダ、SCRIPT_DIR- スクリプトフォルダ(TPRスクリプトのみ)。
例えば、プロジェクトのホームフォルダーに保存されているmyapp.apkファイルをインストールするには、次のようにします:
"{_PROJECT_DIR}/myapp.apk"
再インストール=<true|false>。
- の値である。真を指定すると、同じバージョンがすでにデバイスにインストールされていても、アプリケーションを再インストールします。デフォルト値はfalse(オフ、再インストールしない)です。
リターン
コマンドは成功すると0(ゼロ)を返す。アプリケーションのインストールに失敗した場合は1が返され、失敗のログも実行ログ.
使用例
// ファイルがプロジェクトのホーム・フォルダーにある場合の相対JAR参照の例
"{_PROJECT_DIR}/adbextension.jar "をインクルードする。// myapp.apkをインストールする。"com.tplan.adb.Install "を実行する file="{_PROJECT_DIR}/myapp.apk" reinstall="true"// 失敗した場合の戻り値をテストすることを推奨する。if ({_EXIT_CODE} == 0) { 。 ステップ "myappのインストール(チェック1)" actual="myapp(パッケージ{_ADB_INSTALLED_PACKAGE})のインストールに成功しました。"} else { ステップ "myappのインストール(チェック1)" result="fail" actual="アプリケーションのインストールに失敗しました(終了コード={_EXIT_CODE})!" 出口1}// 代替テスト - "pm list packages "シェルコマンドを実行し、我々のパッケージがリストされていることを確認する。// adb shell pm」の詳細については、以下を参照のこと:http://developer.android.com/tools/help/adb.html#pm"com.tplan.adb.Shell "コマンド="pm list packages "を実行する。if ("{_ADB_SHELL_OUTPUT}" に "{_ADB_INSTALLED_PACKAGE}" が含まれている場合) {。 ステップ "myappをインストールする(チェック2)" actual="インストールされたAndroidパッケージのリストにアプリが存在する"} else { ステップ "myappのインストール(チェック2)" result="fail" actual="アプリがインストールされていません!" 出口1
}// アプリケーションのテストはここで行う// 終了したらアプリケーションをアンインストールする。// package パラメータは、プラグインバージョン 2 以上では省略可能です。"com.tplan.adb.Uninstall "パッケージ="{_ADB_INSTALLED_PACKAGE}"を実行します。
3.2アンインストールスクリプト
説明
についてcom.tplan.adb.Uninstallスクリプトは、現在接続されている Android デバイスからアプリケーションをアンインストールします。このスクリプトは"adb shell pm uninstall" コマンドを実行する。
あらすじ(Tprスクリプト)
走るcom.tplan.adb.Uninstallpackage=<アプリケーション・パッケージ
あらすじ(Javaスクリプト)
走る("com.tplan.adb.Uninstall"、"package"、"<application_package>");
* 赤色は必須パラメータ
オプション
package=<アプリケーション・パッケージ
- アンインストールするアプリケーションパッケージ。
リターン
コマンドは成功すると0(ゼロ)を返す。アプリケーションのアンインストールに失敗した場合は1が返され、失敗のログも実行ログ.
使用例
参照インストール例.
3.3プッシュ&プル・スクリプト
説明
についてcom.tplan.adb.Pushそしてcom.tplan.adb.Pullスクリプトを使えば、ローカル・マシンから現在接続しているAndroidデバイスにファイルをコピーすることができる(プッシュ)、あるいは反対方向(プル).スクリプトは"adbプッシュ/プル"を呼び出す。
重要:PullとPushの操作は、プラグインv1ではファイルのみに限定されています。ディレクトリをプッシュまたはプルしようとすると、Android SDK APIの内部問題(NullPointerException)により失敗します。この問題は将来のリリースで対処される予定です。
あらすじ(Tprスクリプト)
走るcom.tplan.adb.Push local=<ローカルファイル> remote=<リモートファイル
走るcom.tplan.adb.Pull local=<ローカルファイル> remote=<リモートファイル
あらすじ(Javaスクリプト)
走る("com.tplan.adb.Push"、"local"、"<local_file>"、"remote"、"<remote_file>");
走る("com.tplan.adb.Pull"、"local"、"<local_file>"、"remote"、"<remote_file>");
* 赤色は必須パラメータ
オプション
local=<ローカルファイル
- コピー(Push)またはコピー先(Pull)のローカルファイル(ディレクトリ)。フルパスで指定する必要があります。コピー先のインストールオプション標準的な場所と相対的にパスを指定する方法のヒントについては、こちらをご覧ください。
リモート=<リモートファイル
- コピー(Pull)またはコピー先(Push)のリモート・ファイル(ディレクトリ)。フルパスで指定する必要があります。
リターン
コマンドは成功すると0(ゼロ)を返す。ファイルのコピーに失敗した場合は1が返され、失敗のログも実行ログ.
使用例
// この例では、プラグインJARが呼び出しスクリプトと同じフォルダにあることを前提としています。"{_SCRIPT_DIR}/adbextension.jar "をインクルードする。
// C:◆data.txtファイルをAndroid端末のSDカードにコピーする。"com.tplan.adb.Push "を実行 ローカル="C:˶data.txt" リモート="/mnt/sdcard/data.txt"
// SDカードからC:⇄data2.txtにファイルをコピーバック。"com.tplan.adb.Pull "を実行 remote="/mnt/sdcard/data.txt" local="C:˶data2.txt"
3.4シェルスクリプト
説明
についてcom.tplan.adb.Shellスクリプトは、現在接続されているAndroidデバイス上で単一のシェルコマンドを実行する。このスクリプトは"adbシェル" コマンドを実行する。
シェルコマンドの出力はADB_SHELL_OUTPUT変数は、文字列比較を使用してさらにテストおよび/または処理される可能性がある。ブール演算子またはストリングコマンドを使用している。
あらすじ(Tprスクリプト)
走るcom.tplan.adb.Shell command=<シェルコマンド[timeout=<time_value>〕〔log=<false|true>〕。
あらすじ(Javaスクリプト)
走る("com.tplan.adb.Shell", "command", "<shell_command>"[, "timeout", "<time_value>"] [, "log", <"true" | "false">]);
* 赤色は必須パラメータ
オプション
コマンド=<シェルコマンド
- adb shell "接頭辞のないシェルコマンド。利用可能なコマンドのリストはADB文書.
timeout=<タイムアウト
- コマンドタイムアウト(オプション)。この値が設定されていない場合、またはゼロの場合、スクリプトは時間制限なしにコマンドが完了するまで待機します。このパラメータが設定されている場合、タイムアウトに達するとコマンドはキャンセルされ、終了コード2が返されます。ADBは内部タイムアウトを適用することがあり、このパラメータが有効になっていなくてもコマンドがタイムアウトする可能性があることに注意してください。
log=<true|false>。
- trueを指定すると、シェルコマンドの出力を実行ログ.スクリプト呼び出しの後にログ "{_ADB_SHELL_OUTPUT}"コマンドを使用する。デフォルト値はfalse(ログを記録しない)。
リターン
Android SDKはシェル・コマンドの終了コードを返す手段を提供していないため、スクリプトは、シェル・コマンドが実際には失敗しても、コマンドがシェルに正しく渡されたことを示すために0(ゼロ)を返すことがほとんどです。コマンドの実行に成功したかどうかは、スクリプトのADB_SHELL_OUTPUT出力に期待される文字列またはパターンを指定する(以下の例を参照)。例えば、シェル呼び出しの途中で接続がクラッシュした場合など、I/Oエラーが発生すると1が返される。タイムアウト値が設定されている場合、コマンドがタイムアウトするとスクリプトは2を返す。失敗はすべて実行ログ.
使用例
その他のコードサンプルについてはインストール例.
// Androidのシステムログをロボットの実行ログにダンプする。"com.tplan.adb.Shell "コマンド="logcat -d" log="true "を実行する。// /mnt/sdcard/test.txtファイルの存在を確認する。com.tplan.adb.Shell" command="ls /mnt/sdcard/*" を実行する。if ("{_ADB_SHELL_OUTPUT}" に "test.txt" が含まれている場合) {。 ステップ "ファイルの存在を確認する" actual="シェルコマンドの出力にtest.txtファイルがある"} else { ステップ "ファイルの存在を確認する" result="fail" actual="ファイルは{_adb_shell_output}のリストに存在しません:{のリストにファイルがありません。}}
3.5スタートスクリプト
説明
についてcom.tplan.adb.Startスクリプトは、Androidデバイス上でアクティビティ(アプリケーション)を開始します。スクリプトは"adb am start -n" コマンドを実行する。
シェルコマンドの出力はADB_SHELL_OUTPUT変数は、文字列比較を使用してさらにテストおよび/または処理される可能性がある。ブール演算子またはストリングコマンドを使用している。
あらすじ(Tprスクリプト)
走るcom.tplan.adb.Start activity=<activity> [timeout=<time_value>] [log=<false|true>] とする。
あらすじ(Javaスクリプト)
走る("com.tplan.adb.Start"、["activity", "<activity>"] [, "timeout", "<time_value>"] [, "log", <"true" | "false">]);
* 赤色は必須パラメータ
オプション
アクティビティ=<アクティビティ
- このパラメータはオプションで、デフォルトではインストールを省略した場合。アクティビティは「<パッケージ名>/<アクティビティ名>」と指定しなければならない。アクティビティが同じパッケージ内にある場合、ドット記法を使って単純な名前で参照することができます。例えば、以下の指定は等価です:
com.mycompany.myapp/com.mycompany.myapp.MainActivity
com.mycompany.myapp/.MainActivity
アプリケーションパッケージとメインアクティビティの名前は、いくつかの方法で取得できます:
アプリケーションの開発者/プロデューサーに頼んで、名前を教えてもらおう。
アプリケーションがインストールを使用する。
ADB_INSTALLED_PACKAGEそして_adb_installed_アクティビティ変数。ローカルPCに.apk形式のアプリケーションがある場合は、以下のいずれかを使用してパッケージを取得できます:
スクリプトエディターで一時的なインストールスクリプトコールを作成しプロパティウィンドウを開きます。次に、アプリケーション・ファイル・フィールドの隣にある「...」ボタンを押し、ファイル・ナビゲーターで.apkファイルを選択します。ウィンドウにパッケージ名とアクティビティ名が表示されます。
エディタで一時的なアンインストール・スクリプト・コールを作成しプロパティウィンドウを開きます。次に、パッケージ名フィールドの隣にある"... "ボタンを押して「.apkからの読み込みボタンをクリックして名前を表示する。
に切り替える。
ビルドツールフォルダに移動し、実行します:aapt dump バッジング <ファイル
アプリケーションがすでにデバイスにインストールされている場合は、次の方法で.apkをダウンロードします。
アドビツール<Android_SDK>platform-toolsフォルダーデバイス上のすべての.apkファイルをリストします:
adb shell pm list packages -fファイルをダウンロードする
adb pull <ファイル
timeout=<タイムアウト
- コマンドタイムアウト(オプション)。この値が設定されていない場合、またはゼロの場合、スクリプトは時間制限なしにコマンドが完了するまで待機します。このパラメータが設定されている場合、タイムアウトに達するとコマンドはキャンセルされ、終了コード2が返されます。ADBは内部タイムアウトを適用することがあり、このパラメータが有効になっていなくてもコマンドがタイムアウトする可能性があることに注意してください。
log=<true|false>。
- trueを指定すると、シェルコマンドの出力を実行ログ.スクリプト呼び出しの後にログ "{_ADB_SHELL_OUTPUT}"コマンドを使用する。デフォルト値はfalse(ログを記録しない)。
リターン
Android SDKはシェル・コマンドの終了コードを返す手段を提供していないため、スクリプトは、シェル・コマンドが実際には失敗しても、コマンドがシェルに正しく渡されたことを示すために0(ゼロ)を返すことがほとんどです。コマンドの実行に成功したかどうかは、スクリプトのADB_SHELL_OUTPUT出力に期待される文字列またはパターンを指定する(以下の例を参照)。例えば、シェル呼び出しの途中で接続がクラッシュした場合など、I/Oエラーが発生すると1が返される。タイムアウト値が設定されている場合、コマンドがタイムアウトするとスクリプトは2を返す。失敗はすべて実行ログ.
使用例
参照使用方法章を参照されたい。
3.6ストップスクリプト
説明
についてcom.tplan.adb.Stopスクリプトは、現在接続されているAndroidデバイス上のアプリケーションを停止(kill)する。このスクリプトは"adb am force-stop"またはAndroid SDKの "adb am kill "コマンド。
シェルコマンドの出力はADB_SHELL_OUTPUT変数は、文字列比較を使用してさらにテストおよび/または処理される可能性がある。ブール演算子またはストリングコマンドを使用している。
あらすじ(Tprスクリプト)
走るcom.tplan.adb.Stoppackage=<package> [force=<false|true>]. [log=<false|true>]。
あらすじ(Javaスクリプト)
走る("com.tplan.adb.Stop"[パッケージ", "<パッケージ>"] [, "force", "<"true" | "false">"] [, "log", <"true" | "false">]);
* 赤色は必須パラメータ
オプション
パッケージ=<パッケージ
- アプリケーション・パッケージ名(オプション)。デフォルトはインストールを省略した場合。スクリプトのプロパティウィンドウでは、デバイスにインストールされているパッケージのリストからパッケージを選択することもできます。パッケージを入手する別の方法についてはスタートスクリプト
force=<true|false>。
- 停止モード・スイッチ(オプション)。デフォルト値の "true "は、am force-stopを呼び出してアプリケーションを強制的に停止します。false "を指定すると、代わりにam killを呼び出します。これは、アプリケーションを停止させるか停止させないかによって、よりソフトに変化します。"安全に殺すことができ、ユーザーエクスペリエンスに影響を与えない".詳細はアクティビティ・マネージャーのドキュメント.
log=<true|false>。
- trueを指定すると、シェルコマンドの出力を実行ログ.スクリプト呼び出しの後にログ "{_ADB_SHELL_OUTPUT}"コマンドを使用する。デフォルト値はfalse(ログを記録しない)。
リターン
Android SDKはシェルコマンドの終了コードを返す手段を提供していないため、スクリプトはほとんどの場合0(ゼロ)を返し、シェルコマンドが実際に失敗しても、コマンドがシェルに正しく渡されたことを示します。コマンドの実行に成功したかどうかは、スクリプトのADB_SHELL_OUTPUT出力に期待される文字列またはパターンを指定する(以下の例を参照のこと)。例えば、シェル呼び出しの途中で接続がクラッシュした場合など、I/Oエラーが発生すると1が返される。タイムアウト値が設定されている場合、コマンドがタイムアウトするとスクリプトは2を返す。失敗はすべて実行ログ.
使用例
参照使用方法章を参照されたい。
4.変更履歴
バージョン3は2015年3月23日にリリース
ADBライブラリのロードルーチンと別の接続の初期化との間のレースコンディションによる断続的なロボットのハングを修正。
エラー報告の改善。
2014年5月15日にリリースされたバージョン2
新たに追加されたスタートそしてストップスクリプトを使用すると、ターゲット・デバイス上でアプリケーションを起動/終了できます。
によって実行されるパッケージ発見。インストールスクリプトは、aapt(Android SDKのツール)を使用するように再実装されました。このスクリプトは、アプリケーションのメイン・アクティビティの名前を含む_ADB_INSTALLED_ACTIVITYという新しい変数も生成します。これはスタートスクリプトを使用してアプリケーションを起動します。プロパティ・ウィンドウでアプリケーション・ファイルを入力するために使用されるファイル・セレクタには、現在選択されているファイルのパッケージとアクティビティが表示されます。
についてアンインストールスクリプトでは、必須の package パラメータが不要になりました。省略すると、最後にインストール.
バージョン1 2013年8月7日リリース