Androidのデバイステスト
BitriseのAndroid仮想デバイステストソリューションを使用すると、独自のデバイスをセットアップして登録しなくても、エミュレーターでUIテストを実行できます。
BitriseのAndroid仮想デバイステストソリューションを使用すると、独自のデバイスをセットアップして登録しなくても、エミュレーターでUIテストを実行できます。
制限事項
仮想デバイスのテストの最大所要時間は 30 分です。
全体的なビルド時間によって制限される場合があります。また、1つのビルドに含めることができるのは1つだけであることに注意してください[ベータ版]仮想デバイスのテスト1種類のテストを実行するステップ(instrumentation、roboまたgameloop)。
当社のデバイステストソリューションは、 Firebaseテストラボ。結果のログ、ビデオ、スクリーンショットはBitriseで見つけることができます。
テストの実行
Bitriseでは、3つの異なるテストタイプから選択できます。
-
robo(Bitriseのデフォルトのテストタイプ)。
-
計装。
-
ゲームループ。
これらのテストタイプの違いについて知りたい場合は、以下をご覧ください。Firebaseのドキュメント。
ロボテストとインストルメンテーションテストのワークフローの構成にはわずかな違いがあるので、別々に見てみましょう。
ロボテストの実行
ワークフローエディター
ビットライズ.yml
-
使用するワークフローをワークフローエディターで開きます。
-
を追加します。Android ビルドワークフローに進み、APK をエクスポートします。
このステップでは、APK パスを 環境変数。この環境変数は後で必要になります。
-
を追加します。
Debugへのタスク変異体ステップ入力フィールド。
-
追加Android の仮想デバイスのテスト後のステップAndroid ビルドステップ。
-
をセットする
APK path入力フィールド。 -
をセットする テストの種類 に入力する 。
-
テストデバイスのタイプを追加しますテストデバイス入力フィールド。
デフォルトとは異なるデバイスを選択する場合、入力の形式は次のとおりです。
deviceID、version、language、orientationと別れた,。利用可能なデバイスのリストを見つけるここ。 -
ビルドを開始してテスト結果をチェックしてください。。
-
の中に
bitrise.ymlファイルで、使用するワークフローを見つけるか、新しいワークフローを作成します。 -
を追加します。
android-buildワークフローに進みます。このステップでは、APK パスを 環境変数。この環境変数は後で必要になります。
my-workflow: steps: - git-clone: {} - android-build: inputs: -
をセットする
variantに入力するデバッグ。my-workflow: steps: - git-clone: {} - android-build: inputs: - variant: Debug -
を追加します。
virtual-device-testing-for-androidステップ。my-workflow: steps: - git-clone: {} - android-build: inputs: - variant: Debug - virtual-device-testing-for-android: inputs: -
をセットする
app_path入力フィールド: デフォルトでは、その値は$BITRISE_APK_PATH環境変数。この環境変数は、android-buildステップ。my-workflow: steps: - git-clone: {} - android-build: inputs: - variant: Debug - virtual-device-testing-for-android: inputs: - app_path: $BITRISE_APK_PATH -
をセットする
test_typeに入力するロボ。my-workflow: steps: - git-clone: {} - android-build: inputs: - variant: Debug - virtual-device-testing-for-android: inputs: - test_type: robo - app_path: $BITRISE_APK_PATH -
テストデバイスのタイプを追加します
test_devices入力フィールド。入力の形式は次のとおりです。
device ID、version、language、orientationで区切られた,。対応機種
サポートされているデバイス モデルを確認するには、
gcloud firebase test android models list --filter=virtualgcloud firebase test android models list --filter=virtualGoogle Cloud CLI のコマンド。my-workflow: steps: - git-clone: {} - android-build: inputs: - variant: Debug - virtual-device-testing-for-android: inputs: - test_type: robo - app_path: $BITRISE_APK_PATH - test_devices: 'Nexus9,24,en,portrait' -
ビルドを開始し、テスト結果を確認します。
roboテストを成功させるためのRoboディレクティブを使用したユーザー入力の設定
roboテストを成功させるためにアプリで特定のユーザー操作が必要な場合は、Robo Directives入力フィールドを使用して、これらの必要な入力を設定できます。たとえば、アプリの特定のUI要素は、ログインに必要なユーザー入力(ユーザー名とメールアドレス)が入力されている場合にのみ、ロボテストにアクセスできます。
-
ワークフローで「Android の仮想デバイスのテスト」ステップをクリックします。
-
[ロボテスト]セクションをクリックします。
-
Roboディレクティブ入力フィールドを見つけて、必要なユーザー入力ディレクティブを設定します。
-
キーと値のペアのコンマ区切りリストを提供します。ここで、キーはターゲットUI要素のAndroidリソース名であり、値はテキスト文字列です。 EditTextフィールドはサポートされていますが、WebViewUIエレメントのテキストフィールドはサポートされていません。たとえば、カスタムログインに次のパラメータを使用できます。
username_resource,username,ENTER_TEXT password_resource,password,ENTER_TEXT loginbtn_resource,,SINGLE_CLICK
-
行ごとに1つのディレクティブ、パラメーターは、文字で区切られます。例:ResourceName、InputText、ActionType。

-
指定した入力に基づいて、ロボテストを正常に実行し(特定のユーザー入力でのみアクセスできるページでも)、[テストレポート]ページでテスト結果を確認できます。テスト結果は、次のようになります。
-
スクリーンショット。
録画したビデオ。
ログ。
ファイル。
これは、成功したroboテストのスクリーンショットです。ここでは、最初に電子メールフィールドとパスワードフィールドにRoboディレクティブから事前定義されたディレクティブを入力することにより、roboテストがマイアプリケーションに到達しました。

計装テストの実行
ワークフローエディター
ビットライズ.yml
-
使用するワークフローをワークフローエディターで開きます。
-
追加しますUIテスト用のAndroidビルドワークフローに進みます。
-
APK とテスト APK をエクスポートするには、次の入力フィールドを設定する必要があります。UI テスト用の Android ビルドステップ。
-
プロジェクトの場所: Android プロジェクトのルート ディレクトリ。
-
モジュール: ビルドしたいモジュールを設定します。
-
変異体: ビルドしたいバリアントを設定します (通常は
デバッグ)。

ステップ出力は次のようになります
BITRISE_APK_PATH(フィルタリング後に生成されたAPKのパスです)およびBITRISE_TEST_APK_PATH(これは、フィルタリング後に生成されたテストAPKのパスです)。 -
-
を追加します。 Android の仮想デバイスのテスト 直後のステップUI テスト用の Android ビルドステップ。
-
をセットするテストの種類に入力する
instrumentation。私たちのUI テスト用の Android ビルドステップでは APK とテスト APK をエクスポートし、それらのパスが自動的に設定されます。APKパスそしてその テストAPKパスの入力フィールドAndroid の仮想デバイスのテストステップ。
-
テストデバイスのタイプを追加しますテストデバイス入力フィールド。
デフォルトとは異なるデバイスを選択する場合、入力の形式は次のとおりです。
device ID、version、language、orientationで区切られた,。
-
ビルドを開始し、テスト結果を確認します。
-
の中に
bitrise.ymlファイルで、使用するワークフローを見つけるか、新しいワークフローを作成します。 -
を追加します。
android-build-for-ui-testingワークフローに進みます。my-workflow: steps: - git-clone: {} - android-build-for-ui-testing: inputs: -
APK とテスト APK をエクスポートするには、次の入力フィールドを設定する必要があります。UI テスト用の Android ビルドステップ。
-
project_location: Android プロジェクトのルート ディレクトリ。 -
module: ビルドしたいモジュールを設定します。 -
variant: ビルドしたいバリアントを設定します (通常はデバッグ)。
my-workflow: steps: - git-clone: {} - android-build-for-ui-testing: inputs: - module: module - variant: variant - project_location: $BITRISE_SOURCE_DIRステップ出力は次のようになります。
BITRISE_APK_PATH(これは、フィルタリング後に生成された APK のパスです)BITRISE_TEST_APK_PATH(これは、フィルタリング後に生成されたテスト APK のパスです)。 -
-
を追加します。
virtual-device-testing-for-android直後のステップUI テスト用の Android ビルドステップ。my-workflow: steps: - git-clone@8: {} - android-build-for-ui-testing: inputs: - module: module - variant: variant - project_location: $BITRISE_SOURCE_DIR - virtual-device-testing-for-android: inputs: -
をセットする
test_typeに入力する計器類。私たちの
android-build-for-ui-testingステップでは APK とテスト APK をエクスポートし、それらのパスは自動的に設定されます。app_pathそしてそのtest_apk_pathの入力フィールドvirtual-device-testing-for-androidステップ。my-workflow: steps: - git-clone: {} - android-build-for-ui-testing: inputs: - module: module - variant: variant - apk_path_pattern: '*/build/outputs/apk/*.apk' - arguments: arg - project_location: $BITRISE_SOURCE_DIR - virtual-device-testing-for-android: inputs: - test_type: instrumentation - app_path: $BITRISE_APK_PATH - test_apk_path: $BITRISE_TEST_APK_PATH -
テストデバイスのタイプを追加します
test_devices入力フィールド。入力の形式は次のとおりです。
device ID、version、language、orientationで区切られた,。my-workflow: steps: - git-clone: {} - android-build-for-ui-testing: inputs: - module: module - variant: variant - apk_path_pattern: '*/build/outputs/apk/*.apk' - arguments: arg - project_location: $BITRISE_SOURCE_DIR - virtual-device-testing-for-android: inputs: - test_devices: 'Nexus9,24,en,portrait' - test_type: instrumentation - test_apk_path: $BITRISE_TEST_APK_PATH - app_path: $BITRISE_APK_PATH -
ビルドを開始し、テスト結果を確認します。