在插桩测试中截取屏幕截图

Firebase 测试实验室包含一个库,您可在运行插桩测试(例如,使用 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。这将在您测试项目的根目录中创建一个 aars 目录(作为 app 文件夹的同级目录)。

  3. 复制 cloudtestingscreenshotter_lib.aar,并将其粘贴到 aars 文件夹中。

  4. 在应用的根级(项目级层)build.gradle 文件中,在每个 repositories 块中添加对 aars 文件夹的引用:

    repositories {
        jcenter()
        flatDir {
            dirs '../aars'
        }
    }
    ...
  5. 在模块的顶级目录(对于 NotePad 示例应用,该目录为 app 目录)中,打开 build.gradle 文件,然后将 cloudtestingscreenshotter_lib.aar 依赖项添加到顶级 dependencies 块:

    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) 查看屏幕截图 选项。

屏幕截图比较屏幕

您可以按如下所示的方式,选择和比较来自不同配置的屏幕截图:

任务 操作
在各个测试作业之间切换。 使用左上角的下拉菜单。

测试用例菜单
在同一测试作业的各个屏幕截图之间切换。 使用右上角的箭头。

屏幕截图切换器
向当前视图中添加更多屏幕截图比较面板。 点击比较

比较
选择一个不同的测试维度(设备类型、屏幕方向、语言区域等)。 从屏幕截图底部的列表中选择一个新的维度成员。

后续步骤

下载 NotePad 示例应用