分析 Firebase 测试实验室结果

您可以通过多种方法来使用 Firebase 测试实验室对您的 Android 应用进行测试,包括命令行界面Android Studio、Firebase 控制台中的测试实验室界面,以及 Testing API。无论您选择哪种方法来启动测试,结果都会存储在您指定的 Firebase 项目中。除了上述任意工具外,您还可以使用 ToolResults API 浏览结果。本页面介绍了如何查看和分析这些测试结果。

主要概念

要查看先前所有测试运行的结果,请在 Firebase 控制台中项目左侧的导航面板上选择 Test Lab(测试实验室)。对于您使用测试实验室进行了项目测试的应用,此页面显示了所有测试运行结果。

如需查看测试结果,您首先需要了解三个概念:

设备 × 测试作业 = 测试矩阵

设备
您用来运行测试的设备,例如手机、平板电脑或穿戴式设备。测试矩阵中的设备由设备型号、操作系统版本、语言区域和屏幕方向标识。
测试作业
在设备上运行的测试。在典型的测试矩阵中,每个选定的设备都有一个测试作业。
测试矩阵
一组测试作业。如果矩阵中的任何测试执行失败,则整个矩阵也会失败。

下文介绍如何浏览解读测试结果。

解读测试历史记录结果

通过选择测试实验室转到测试结果页面后,您可以看到此前运行的测试的结果。

测试历史记录按应用分组。页面上只显示每个应用最近的五个测试矩阵;如果有更多可用矩阵,您可以点击位于应用测试列表底部的所有矩阵链接,以查看该应用的完整测试矩阵列表。

解读测试矩阵结果

通过测试实验室界面开始测试时,您将被重定向到一个页面,从中可以查看测试矩阵,您也可点击特定测试作业以查看测试结果。Android Studiogcloud 命令也会提供测试矩阵结果页面的网址。

在典型的测试矩阵中,您可能会在十几台不同的设备上运行测试。每个测试作业的结果可能都不尽相同。测试矩阵中任意测试作业都可能得到以下结果:

  • 通过 测试已通过:没有发生任何失败。
  • 未通过 测试未通过:至少发生一次失败。
  • 无结论 测试已通过:测试结果无结论,可能是由于测试实验室发生了错误。
  • 已跳过 测试已通过:为矩阵中某些测试作业所选择的维度值不兼容。当您选择的设备与您选择的一个或多个 Android API 级别不兼容时,就会发生这种情况。

如需查看 Firebase 项目中给定应用的所有测试矩阵的测试结果汇总,请点击应用名称,如下例所示:

仅包含 4 个测试作业的测试矩阵结果页面示例 测试矩阵结果

您将转到您的应用的测试矩阵列表,您可以在其中点击任意测试矩阵的名称以查看测试矩阵结果,也可以点击应用的名称(如下面的红色框中所示),以查看与您的 Firebase 项目关联的其他应用的测试矩阵列表。

测试矩阵列表页面示例 测试矩阵列表

测试矩阵可能通过测试、未通过测试或无结论。如果测试矩阵中的任一测试作业未通过测试或无结论,则测试矩阵就会显示为未通过测试或无结论。

解读 Robo 测试结果

如果您使用 Robo 运行测试,除了常规的测试指标之外,您的测试结果还会包含 Robo 抓取的界面视频和截图。这些视频和截图包含 Robo 在抓取过程中所采取的操作的画面提示,类似于 Android 中的“显示触摸操作”功能。您可以利用这些提示来把握 Robo 的测试过程,并重现您籍此发现的任何错误。

Robo 测试结果视频示例

Robo 测试结果

解读一项测试作业的结果

在测试矩阵结果页面中点击某项测试作业,即可查看该测试作业的结果。

测试作业结果页面示例 测试作业结果

在此页面上,您可以查看每项测试作业所需的时间。您还可以查看与测试 APK 中的方法相对应的特定测试用例的结果(对于插桩测试而言),以及包括测试日志、屏幕截图和视频在内的详细测试结果。对于 Robo 测试,详细的测试结果还会包括一份活动地图,该地图以图形方式显示 Robo 测试所访问的界面路径。

经过归类的插桩测试结果

为了帮助您解释插桩测试结果,测试实验室将每个测试分成了自己的详细报告页面,包括堆栈轨迹、日志和视频。 无论您是否使用 Android Orchestrator,此功能都有效。

测试用例结果页面示例 测试用例结果

性能指标

在真机设备上运行的测试也会返回性能指标:

指标所需设备配置
应用启动时间API 19+
CPU 使用率API 21+
内存使用量
网络活动
每秒帧数API 21 及更高级别,并且包含 SurfaceView
图形性能API 23+

图形性能详情

图形性能报告包含几个关键图形指标的相关统计信息:

  • 错过的 VSync 事件数:错过的 VSync 事件数除以呈现时间超过 16 毫秒的帧数。
  • 高输入延迟:所用时间超过 24 毫秒的输入事件数除以呈现时间超过 16 毫秒的帧数。
  • 界面线程速度缓慢:界面线程需要超过 8 毫秒才能完成的次数除以呈现时间超过 16 毫秒的帧数。
  • 加载命令速度缓慢:将加载命令发送到 GPU 所用时间超过 12 毫秒的次数除以呈现时间超过 16 毫秒的帧数。
  • 位图上传速度缓慢:位图需要超过 3.2 毫秒才能上传到 GPU 的次数除以呈现时间超过 16 毫秒的帧数。
  • 呈现时间:测试运行期间每一帧的呈现时间分布图。呈现时间超过 32 毫秒会觉察到界面变慢。呈现时间超过 700 表示存在冻结帧。呈现数据是通过 dumpsys graphicsstats 收集的。

详细测试结果

详细的测试结果会在您运行测试后保留 90 天,并存储在 Google Cloud Storage (GCS) 存储分区中(但也可在 Firebase 控制台中看到)。在测试作业结果页面上点击查看源文件,即可查看 GCS 存储分区中的详细测试结果。在详细测试结果保留期结束后,您仍然可以看到哪些测试通过/未通过。

如果希望在 90 天之后仍然能够查看详细的测试结果,您需要使用 --results-bucket gcloud 命令行选项将这些测试结果发送到您拥有的 GCS 存储分区。 随后您可以设置存在时间 (Age) 设置,以确定结果在 GCS 存储分区中的存储时长。如需了解如何更改存在时间 (Age) 设置,请参阅生命周期条件