Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

インストルメンテーション テストでスクリーンショットを作成する

Firebase Test Lab には、インストルメンテーション テスト(Espresso テスト フレームワークを使用して記述したテストなど)の実行時にスクリーンショットを作成するためのライブラリが含まれています。テストにこの機能を追加するには、cloudtestingscreenshotter_lib.aar ライブラリをダウンロードします。

スクリーンショットを作成する機能は、NotePad サンプルアプリのテスト APK(app-debug-test-unaligned.apk)にすでに組み込まれており、Robo テストの実行時にもスクリーンショットがキャプチャされます。アプリにスクリーンショット ライブラリを追加する方法と、テストからこのライブラリを呼び出す手順を以下に示します。

テストが完了すると、Android Studio または Firebase コンソールでスクリーンショットを確認できます。

プロジェクトにスクリーンショット ライブラリを追加する

  1. Android Studio で [Project] ビューを開き、プロジェクト名を右クリックします。[New]、[Directory] の順にクリックします。

  2. [New Directory] ダイアログで「aars」と入力します。これで、テスト プロジェクトのルートに(app フォルダのピア ディレクトリとして)aars ディレクトリが作成されます。

  3. cloudtestingscreenshotter_lib.aar をコピーして、aars フォルダに貼り付けます。

  4. アプリのルートレベル(プロジェクト レベル)の build.gradle ファイルで、すべての repositories ブロックに aars フォルダへの参照を追加します。

    repositories {
        jcenter()
        flatDir {
            dirs '../aars'
        }
    }
    ...
  5. モジュールの最上位ディレクトリ(NotePad サンプルアプリの場合は app ディレクトリ)で、build.gradle ファイルを開き、最上位の dependencies ブロックに cloudtestingscreenshotter_lib.aar への依存関係を追加します。

    dependencies {
        // Cloud testing
        androidTestCompile (name:'cloudtestingscreenshotter_lib', ext:'aar')
        // Other dependencies go here
        }
    
  6. AndroidManifest.xml ファイルで、<manifest> タグ内に次の行を追加し、アプリのシステム権限を指定します。Android 10(API レベル 29)以降でテストを行う場合は、WRITE_EXTERNAL_STORAGE 権限を省略します(デバイスでスクリーンショットの読み書きを行う場合、この権限は必要ありません)。

    <manifest ... >
       <!-- WRITE_EXTERNAL_STORAGE is not needed on Android 10 (API level 29) or higher. -->
       <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
       <uses-permission android:name="android.permission.INTERNET"/>
       ...
    </manifest>
    

テストのスクリーンショットを作成する

テスト中にスクリーンショットを作成するタイミングで、cloudtestingscreenshotter_lib ライブラリから ScreenShotter.takeScreenshot メソッドを呼び出します。ここで最初の引数は、スクリーンショットを識別するラベルです(以下の例では main_screen_2 が使用されます)。

Java

ScreenShotter.takeScreenshot("main_screen_2", this /* activity */);

Kotlin+KTX

ScreenShotter.takeScreenshot("main_screen_2", this /* activity */)

スクリーンショットを表示する

テストが完了したら、テスト結果ツリーで要素を選択し、[View Screenshots] スクリーンショットを表示する オプションをクリックすることによって、テスト中に作成したスクリーンショットを比較できます。

スクリーンショット比較画面

次のように、さまざまな構成からスクリーンショットを選択して比較できます。

タスク アクション
テスト実行の切り替え 左上のプルダウン メニューを使用します。

テストケース メニュー
テスト実行内のスクリーンショットの切り替え 右上の矢印を使用します。

スクリーンショットの切り替えツール
現在のビューに別のスクリーンショット比較パネルを追加 [Compare] をクリックします。

比較
別のテスト ディメンション(デバイスタイプ、画面の向き、言語 / 地域など)を選択 スクリーンショット下部のリストから新しいディメンション メンバーを選択

次のステップ

NotePad サンプルアプリをダウンロードする