BitriseのAndroidデバイステストソリューションを用いることで、デバイスのセットアップや登録を行うことなく、エミュレータ上でUIテストを実行できます。
デバイステストソリューションはFirebase Test Labをベースとしています。 実行結果のログ、ビデオ、スクリーンショットはBitriseで閲覧することができます。
デバイステストを有効化 ⚓
-
はじめにアプリの
Settings
タブ上でDevice Testing
をONにします。Device Testing
の右上隅にあるスイッチを右に切り替えます。 Settings
ページからアプリのBuild
ページに移動します。- テストを行うビルドをクリックします。
-
もし
Step 1
でデバイステストを有効にしていれば、APPS & ARTIFACTS
の次に3番目のタブDEVICE TESTS BETA
が出現するのでこれをクリックします。 add step to primary workflow
をクリックして、デバイステストに必要な2つのステップをprimary workflow
に追加します。Android Build
- テストのためにapkを生成するステップ[BETA] Virtual Device Testing for Android
- テストを実行しテストレポートを生成するステップ
テストの実行 ⚓
Bitriseでは3つのテストタイプから選択可能です。
- robo (default test type in Bitrise)
- instrumentation
- gameloop
もしテストタイプの違いを知りたい場合はFirebase’s documentationをご覧ください。 RoboテストとInstrumentationテストでは設定方法に少し違いがありますので、別々に見てみましょう!
Roboテストの実行 ⚓
Workflow Editor
でビルドのprimary workflow
を開きます。- APKをエクスポートするため、
Android Unit Test
ステップの後にAndroid Build
ステップを追加します。 -
Variant
の入力欄にDebug
を追加してください。これにより、ビルドのAPKパスを含む環境変数が準備されます。この環境変数は次のステップで必要になります。 Android Build
ステップの後に[BETA] Virtual Device Testing for Android
を追加します。APK path
の入力欄を設定します。Test type
にrobo
が選択されていることを確認してください。-
Test devices
入力欄にテストデバイスのタイプを追加します。デフォルト以外のデバイスを選択する場合、,
で区切ったdeviceID,version,language,orientation
のフォーマットで入力する必要があります。利用可能なデバイスの一覧はこちらで確認してください。
- ビルドを開始し、テスト結果を確認します。
Roboテストを成功させるためのRobo Directivesを使ったユーザー入力の設定 ⚓
Roboテストを成功させるために、アプリが特定のユーザー操作を必要とする場合、Robo Directives
入力フィールドを使ってそれらの必要な入力を設定することができます。たとえば、アプリの特定のUI要素は必要なユーザー入力(ユーザー名とメールアドレス)がログイン用に入力されている場合にのみ、Roboテストにアクセスできます。
- ワークフローの
[BETA] Virtual Device Testing for Android
ステップをクリックします。 Robo Test
セクションをクリックします。Robo directives
入力フィールドに、必要なユーザー入力ディレクティブを設定します。-
カンマ区切りのkey-valueリストを提供してください。keyはターゲットUI要素のAndroidリソース名、valueはテキスト文字列です。EditTextフィールドはサポートされていますが、WebView UI要素のテキストフィールドはサポートされていません。たとえば、カスタムログインに次のパラメータを使用できます。
username_resource,username,ENTER_TEXT password_resource,password,ENTER_TEXT loginbtn_resource,,SINGLE_CLICK
-
行ごとに1つのディレクティブを定義し、パラメータは
,
で区切ります。例:ResourceName,InputText,ActionType
-
指定した入力に基づき、(特定のユーザー入力でしかアクセスできないページであっても)正常にRoboテストを実行できます。また、ビルドページのDEVICE TESTS
タブ内でテスト結果を確認できます。 テスト結果は次のようになります。
- エミュレータ画面の最終状態のスクリーンショット
- 録画ビデオ
- ログ
- ファイル
以下は成功したRoboテストのスクリーンショットです。RoboテストはRobo directives
によって事前に定義されたemail
とpassword
のフィールドを注入することでMy application
のテストは通りました。
Instrumentationテストの実行 ⚓
Workflow Editor
でビルドのprimary workflow
を開きます。Android Build for UI testing
をワークフローに追加します。- APKとテストAPKを出力するには、
Android Build for UI testing
ステップで以下の入力フィールドを設定する必要があります。Project Location
: AndroidプロジェクトのルートディレクトリModule
: ビルドしたいモジュールVariant
:ビルドしたいバリアント (通常はdebug
)
このステップの出力は
BITRISE_APK_PATH
(フィルタリング後に生成されたAPKのパス)とBITRISE_TEST_APK_PATH
(フィルタリング後に生成されたテストAPKのパス)になります。 Android Build for UI testing
ステップ直後に[BETA] Virtual Device Testing
ステップを追加します。-
Test type
をinstrumentation
に設定します。Android Build for UI Testing
ステップはAPKとテストAPKを出力し、それらのパスは自動的に[BETA] Virtual Device Testing
ステップのAPK path
とTest APK path
入力フィールドに設定されます。 -
Test devices
入力欄にテストデバイスのタイプを追加します。デフォルト以外のデバイスを選択する場合、,
で区切ったdeviceID,version,language,orientation
のフォーマットで入力する必要があります。 - ビルドを開始し、テスト結果を確認します。
テスト結果の確認 ⚓
UIテストの結果は、ビルドページのDEVICE TESTS
タブで確認できます。
Builds
ページに戻りビルドを選択し、DEVICE TESTS
タブをクリックしてテスト結果を確認します。- プロジェクトのテストを行ったデバイスをクリックします。
Instrumentationテストを選択した場合はテストケースとダウンロード可能なログを、Roboテストを選択した場合はビデオとスクリーンショットを見ることができます。または下にスクロールして、すべてのレポートをFILES GENERATED
でダウンロードできます。