Androidのデバイステスト
BitriseのAndroid仮想デバイステストソリューションを使用すると、独自のデバイスをセットアップして登録しなくても、エミュレーターでUIテストを実行できます。
BitriseのAndroid仮想デバイステストソリューションを使用すると、独自のデバイスをセットアップして登録しなくても、エミュレーターでUIテストを実行できます。
制限事項
The maximum duration for virtual device testing is 30 minutes.
全体的なビルド時間によって制限される場合があります。また、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=virtual
Google 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
-
ビルドを開始し、テスト結果を確認します。
テスト結果の確認
テストレポートには、実行したすべてのテストに関する最も重要な情報が表示されます。 テストの概要 タブ。実行したすべてのテスト、それらの期間、およびそれらの結果が表示されます。個々のテストのタブをクリックして、詳細を確認することもできます。
特定のテストの結果にアクセスするには:
-
開く ビットライズCI ページにアクセスし、プロジェクト リストからプロジェクトを選択します。
-
チェックアウトするビルドを選択します。
-
に移動します詳細とアドオン タブ。
-
You can see failed tests on the Tests tab itself. If you had no failed tests, click the button.
-
に テストの概要 タブで、確認したいテストを見つけます。または、トップバーで、チェックアウトするテストセットのタブをクリックします。結果に基づいてテストをフィルタリングするには、右上のメニューを開きます。 全て デフォルトでは。
-
クリック テストケース 詳細を確認します。
UIテストはデバイスごとにグループ化され、単体テストはテストケースごとにグループ化されます。
見つけるだろう:
-
実行したテストの総数、および成功したテストと失敗したテストの比率。
-
個々のテスト(単体テストとUIテストの両方)の期間。
-
UIテストの場合、デバイスの向きとロケール。
テストの種類に応じて、次のことを確認できます。
-
個々のテストケース
-
パフォーマンスデータ
-
ビデオ
-
スクリーンショット
-
アーティファクトをテストする
-
ログ
上記のように、これはテストの種類によっても異なります。単体テストの場合、もちろんスクリーンショットやビデオは表示されません。