在 Firebase 测试实验室 Instrumentation 测试中截取屏幕截图

Firebase 测试实验室包含一个库,您可在运行 Instrumentation 测试(例如,使用 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> 和 </manifest> 之间添加下面两行内容:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>

从测试中截取屏幕截图

在测试中您需要截取屏幕截图的任一点,调用 cloudtestingscreenshotter_lib 库的 ScreenShotter.takeScreenshot 方法,其中第一个参数是一个标签,您可以用它标识屏幕截图(在以下示例中使用 main_screen_2):

ScreenShotter.takeScreenshot("main_screen_2", getActivity());

查看屏幕截图

完成测试后,您可以在测试结果树中选择一个元素,然后点击查看屏幕截图 (View Screenshots) 查看屏幕截图 选项,以便比较在测试期间截取的任意屏幕截图。

屏幕截图比较屏幕

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

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

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

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

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

后续步骤

下载 NotePad 示例应用

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面