Firebase Test Lab には、インストルメンテーション テスト(Espresso テスト フレームワークを使用して記述したテストなど)の実行時にスクリーンショットを作成するためのライブラリが含まれています。テストにこの機能を追加するには、cloudtestingscreenshotter_lib.aar ライブラリをダウンロードします。
スクリーンショットを作成する機能は、NotePad サンプルアプリのテスト APK(app-debug-test-unaligned.apk)にすでに組み込まれており、Robo テストの実行時にもスクリーンショットがキャプチャされます。アプリにスクリーンショット ライブラリを追加する方法と、テストからこのライブラリを呼び出す手順を以下に示します。
テストが完了すると、Android Studio または Firebase コンソールでスクリーンショットを確認できます。
プロジェクトにスクリーンショット ライブラリを追加する
Android Studio で [Project] ビューを開き、プロジェクト名を右クリックします。[New]、[Directory] の順にクリックします。
[New Directory] ダイアログで「aars」と入力します。これで、テスト プロジェクトのルートに(app フォルダのピア ディレクトリとして)aars ディレクトリが作成されます。
cloudtestingscreenshotter_lib.aar をコピーして、aars フォルダに貼り付けます。
アプリのルートレベル(プロジェクト レベル)の
build.gradle
ファイルで、すべてのrepositories
ブロックに aars フォルダへの参照を追加します。repositories { jcenter() flatDir { dirs '../aars' } } ...
モジュールの最上位ディレクトリ(NotePad サンプルアプリの場合は app ディレクトリ)で、
build.gradle
ファイルを開き、最上位のdependencies
ブロックに cloudtestingscreenshotter_lib.aar への依存関係を追加します。dependencies { // Cloud testing androidTestCompile (name:'cloudtestingscreenshotter_lib', ext:'aar') // Other dependencies go here }
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] をクリックします。![]() |
別のテスト ディメンション(デバイスタイプ、画面の向き、言語 / 地域など)を選択 | スクリーンショット下部のリストから新しいディメンション メンバーを選択 |