Skip to main content

Androidのデバイステスト

概要

BitriseのAndroid仮想デバイステストソリューションを使用すると、独自のデバイスをセットアップして登録しなくても、エミュレーターでUIテストを実行できます。

BitriseのAndroid仮想デバイステストソリューションを使用すると、独自のデバイスをセットアップして登録しなくても、エミュレーターでUIテストを実行できます。

制限事項

The maximum duration for virtual device testing is 30 minutes.

全体的なビルド時間によって制限される場合があります。また、1つのビルドに含めることができるのは1つだけであることに注意してください[ベータ版]仮想デバイスのテスト1種類のテストを実行するステップ(instrumentationroboまたgameloop)。

当社のデバイステストソリューションは、 Firebaseテストラボ。結果のログ、ビデオ、スクリーンショットはBitriseで見つけることができます。

テストの実行

Bitriseでは、3つの異なるテストタイプから選択できます。

  • robo(Bitriseのデフォルトのテストタイプ)。

  • 計装。

  • ゲームループ。

これらのテストタイプの違いについて知りたい場合は、以下をご覧ください。Firebaseのドキュメント。

ロボテストとインストルメンテーションテストのワークフローの構成にはわずかな違いがあるので、別々に見てみましょう。

ロボテストの実行

ワークフローエディター

ビットライズ.yml

  1. 使用するワークフローをワークフローエディターで開きます。

  2. を追加します。Android ビルドワークフローに進み、APK をエクスポートします。

    このステップでは、APK パスを 環境変数。この環境変数は後で必要になります。

  3. を追加します。Debugへのタスク変異体ステップ入力フィールド。

    Device testing for Android
  4. 追加Android の仮想デバイスのテスト後のステップAndroid ビルドステップ。

  5. をセットするAPK path入力フィールド。

  6. をセットする テストの種類 に入力する ロボ

  7. テストデバイスのタイプを追加しますテストデバイス入力フィールド。

    デフォルトとは異なるデバイスを選択する場合、入力の形式は次のとおりです。deviceIDversionlanguageorientationと別れた ,。利用可能なデバイスのリストを見つけるここ

    Device testing for Android
  8. ビルドを開始し、テスト結果を確認する

  1. の中に bitrise.yml ファイルで、使用するワークフローを見つけるか、新しいワークフローを作成します。

  2. を追加します。android-buildワークフローに進みます。

    このステップでは、APK パスを 環境変数。この環境変数は後で必要になります。

    my-workflow:
      steps:
        - git-clone: {}
        - android-build:
            inputs:
    
  3. をセットする variant に入力する デバッグ

    my-workflow:
      steps:
        - git-clone: {}
        - android-build:
            inputs:
            - variant: Debug
    
  4. を追加します。 virtual-device-testing-for-android ステップ。

    my-workflow:
      steps:
        - git-clone: {}
        - android-build:
            inputs:
            - variant: Debug
        - virtual-device-testing-for-android:
            inputs:
    
  5. をセットする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
    
  6. をセットする 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
    
  7. テストデバイスのタイプを追加しますtest_devices入力フィールド。

    入力の形式は次のとおりです。 device IDversionlanguageorientationで区切られた,

    対応機種

    サポートされているデバイス モデルを確認するには、 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'
    
  8. ビルドを開始し、テスト結果を確認します。

roboテストを成功させるためのRoboディレクティブを使用したユーザー入力の設定

roboテストを成功させるためにアプリで特定のユーザー操作が必要な場合は、Robo Directives入力フィールドを使用して、これらの必要な入力を設定できます。たとえば、アプリの特定のUI要素は、ログインに必要なユーザー入力(ユーザー名とメールアドレス)が入力されている場合にのみ、ロボテストにアクセスできます。

  1. ワークフローで「Android の仮想デバイスのテスト」ステップをクリックします。

  2. [ロボテスト]セクションをクリックします。

  3. Roboディレクティブ入力フィールドを見つけて、必要なユーザー入力ディレクティブを設定します。

    • キーと値のペアのコンマ区切りリストを提供します。ここで、キーはターゲットUI要素のAndroidリソース名であり、値はテキスト文字列です。 EditTextフィールドはサポートされていますが、WebViewUIエレメントのテキストフィールドはサポートされていません。たとえば、カスタムログインに次のパラメータを使用できます。

      username_resource,username,ENTER_TEXT
      password_resource,password,ENTER_TEXT
      loginbtn_resource,,SINGLE_CLICK
    • 行ごとに1つのディレクティブ、パラメーターは、文字で区切られます。例:ResourceName、InputText、ActionType。

    Device testing for Android

指定した入力に基づいて、ロボテストを正常に実行し(特定のユーザー入力でのみアクセスできるページでも)、[テストレポート]ページでテスト結果を確認できます。テスト結果は、次のようになります。

  • スクリーンショット。

    録画したビデオ。

    ログ。

    ファイル。

これは、成功したroboテストのスクリーンショットです。ここでは、最初に電子メールフィールドとパスワードフィールドにRoboディレクティブから事前定義されたディレクティブを入力することにより、roboテストがマイアプリケーションに到達しました。

Device testing for Android

計装テストの実行

ワークフローエディター

ビットライズ.yml

  1. 使用するワークフローをワークフローエディターで開きます。

  2. 追加しますUIテスト用のAndroidビルドワークフローに進みます。

  3. APK とテスト APK をエクスポートするには、次の入力フィールドを設定する必要があります。UI テスト用の Android ビルドステップ。

    • プロジェクトの場所: Android プロジェクトのルート ディレクトリ。

    • モジュール: ビルドしたいモジュールを設定します。

    • 変異体: ビルドしたいバリアントを設定します (通常はデバッグ)。

    Device testing for Android

    ステップ出力は次のようになりますBITRISE_APK_PATH(フィルタリング後に生成されたAPKのパスです)およびBITRISE_TEST_APK_PATH(これは、フィルタリング後に生成されたテストAPKのパスです)。

  4. を追加します。 Android の仮想デバイスのテスト 直後のステップUI テスト用の Android ビルドステップ。

  5. をセットするテストの種類に入力する instrumentation

    私たちのUI テスト用の Android ビルドステップでは APK とテスト APK をエクスポートし、それらのパスが自動的に設定されます。APKパスそしてその テストAPKパスの入力フィールドAndroid の仮想デバイスのテストステップ。

  6. テストデバイスのタイプを追加しますテストデバイス入力フィールド。

    デフォルトとは異なるデバイスを選択する場合、入力の形式は次のとおりです。 device IDversionlanguageorientationで区切られた,

    Device testing for Android
  7. ビルドを開始し、テスト結果を確認します。

  1. の中に bitrise.yml ファイルで、使用するワークフローを見つけるか、新しいワークフローを作成します。

  2. を追加します。android-build-for-ui-testingワークフローに進みます。

    my-workflow:
      steps:
        - git-clone: {}
        - android-build-for-ui-testing:
            inputs:
    
  3. 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 のパスです)。

  4. を追加します。 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:
    
  5. をセットする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
    
  6. テストデバイスのタイプを追加しますtest_devices入力フィールド。

    入力の形式は次のとおりです。 device IDversionlanguageorientationで区切られた,

    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
    
  7. ビルドを開始し、テスト結果を確認します。

テスト結果の確認

テストレポートには、実行したすべてのテストに関する最も重要な情報が表示されます。 テストの概要 タブ。実行したすべてのテスト、それらの期間、およびそれらの結果が表示されます。個々のテストのタブをクリックして、詳細を確認することもできます。

特定のテストの結果にアクセスするには:

  1. 開く ビットライズCI ページにアクセスし、プロジェクト リストからプロジェクトを選択します。

  2. チェックアウトするビルドを選択します。

  3. に移動します詳細とアドオン タブ。

  4. You can see failed tests on the Tests tab itself. If you had no failed tests, click the View Test Reports button.

  5. テストの概要 タブで、確認したいテストを見つけます。または、トップバーで、チェックアウトするテストセットのタブをクリックします。結果に基づいてテストをフィルタリングするには、右上のメニューを開きます。 全て デフォルトでは。

    Test Reports
  6. クリック テストケース 詳細を確認します。

    UIテストはデバイスごとにグループ化され、単体テストはテストケースごとにグループ化されます。

見つけるだろう:

  • 実行したテストの総数、および成功したテストと失敗したテストの比率。

  • 個々のテスト(単体テストとUIテストの両方)の期間。

  • UIテストの場合、デバイスの向きとロケール。

    Test Reports

テストの種類に応じて、次のことを確認できます。

  • 個々のテストケース

  • パフォーマンスデータ

  • ビデオ

  • スクリーンショット

  • アーティファクトをテストする

  • ログ

上記のように、これはテストの種類によっても異なります。単体テストの場合、もちろんスクリーンショットやビデオは表示されません。