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