获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

分析 Firebase 测试实验室结果

有多种方法可以使用 Firebase 测试实验室在您的 Android 应用上运行测试,包括命令行界面Android Studio 、Firebase 控制台中的测试实验室 UI测试 API 。无论您选择如何开始测试,结果都会存储在您指定的 Firebase 项目中。除了上述任何工具之外,您还可以使用ToolResults API探索结果。本页介绍如何查看和分析这些测试结果。

关键概念

要查看之前所有测试运行的结果,请在 Firebase 控制台的项目左侧导航面板中选择测试实验室。此页面显示您使用测试实验室在项目中测试过的应用程序的所有测试运行。

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

当您针对您选择的设备和配置运行测试或一组测试用例时,测试实验室会针对您的应用批量运行测试,然后将结果显示为测试矩阵

设备 × 测试执行 = 测试矩阵

设备
您在其上运行测试的物理或虚拟设备(仅限 Android),例如手机、平板电脑或可穿戴设备。测试矩阵中的设备由设备型号、操作系统版本、屏幕方向和区域设置(也称为地理和语言设置)标识。
测试,测试执行
要在设备上运行的测试(或一组测试用例)。您可以为每台设备运行一个测试,也可以选择对测试进行分片并在不同的设备上运行其测试用例。
测试矩阵
包含测试执行的状态和测试结果。如果矩阵中的任何测试执行失败,则整个矩阵都会失败。

以下部分说明了如何浏览测试结果。

解释测试历史结果

当您通过选择Test Lab导航到您的测试结果时,您会看到到目前为止您已运行的测试的结果。

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

解释测试矩阵结果

通过测试实验室 UI开始测试时,您将被重定向到一个页面,您可以在其中查看测试矩阵并单击特定测试执行以查看测试结果。 Android Studiogcloud 命令也提供了测试矩阵结果页面的 URL。

在典型的测试矩阵中,您可能会在十几个不同的设备上运行测试。每个测试执行都可以有不同的结果。测试矩阵中任何测试执行的可能结果包括:

  • 通过考试通过了: 没有遇到任何故障。
  • 失败的测试失败: 至少遇到一个故障。
  • 无定论考试通过了:测试结果不确定,可能是由于测试实验室错误。
  • 跳过考试通过了:矩阵中某些测试执行的选定维度值不兼容。当您选择的设备与您选择的一个或多个 Android API 级别不兼容时,就会出现这种情况。

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

示例测试矩阵结果页面只有四个测试执行测试矩阵结果

这会将您带到您的应用程序的测试矩阵列表,您可以在其中单击任何测试矩阵的名称以查看测试矩阵结果,您可以在其中单击应用程序的名称(如下图红框所示)查看与您的 Firebase 项目关联的其他应用的测试矩阵列表。

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

测试矩阵可以通过、失败或不确定。如果该矩阵中的任何测试执行失败或不确定,则该测试矩阵显示为失败或不确定。

解释 Robo 测试结果

如果您使用 Robo 运行测试,除了通常的测试指标外,您的结果还包括 Robo 抓取您的 UI 的视频和屏幕截图。这些视频和屏幕截图包括 Robo 在爬行期间采取的行动的视觉指示,类似于 Android 中的“显示触摸”功能。您可以使用这些指示来帮助您跟随 Robo 的进度,并重现它可能发现的任何错误。

示例 Robo 测试结果视频

机器人测试结果

解释单个测试执行的结果

在测试矩阵结果页面中,单击其中一个测试执行以查看该特定测试执行的结果。

示例测试执行结果页面测试执行结果

在此页面上,您可以看到每次测试执行所需的时间。您还可以查看与您的测试 APK(用于插桩测试)中的方法相对应的特定测试用例的结果以及详细的测试结果,包括测试日志、屏幕截图和视频。对于Robo 测试,详细的测试结果还包括一个活动图,以图形方式显示 Robo 测试访问的 UI 路径。

分区仪器测试结果

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

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

解释可访问性结果

Robo 测试使用 Android Accessibility Scanner 来检测应用程序中的可访问性问题(请注意,您也可以在设备上本地运行扫描)。有关如何查看和解释 Robo 测试的可访问性结果的说明,请访问Accessibility Scanner 入门

有关如何提高应用的可访问性的一般信息,请访问Android 开发者可访问性文档

性能指标

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

公制所需的设备配置
应用启动时间API 19+
CPU使用率API 21+
内存使用情况
网络活动
每秒帧数API 21+,包括SurfaceView
图形性能API 23+

显卡性能细节

图形性能报告包含几个关键图形指标的统计数据:

  • 错过的垂直同步:错过的垂直同步事件数除以渲染时间超过 16 毫秒的帧数。
  • 高输入延迟:时间超过 24 毫秒的输入事件数除以渲染时间超过 16 毫秒的帧数。
  • 慢 UI 线程: UI 线程完成时间超过 8 毫秒的次数除以渲染时间超过 16 毫秒的帧数。
  • 慢速绘制命令:向 GPU 发送绘制命令耗时超过 12 毫秒的次数除以渲染耗时超过 16 毫秒的帧数。
  • 位图上传速度慢:位图上传到 GPU 的时间超过 3.2 毫秒的次数除以渲染时间超过 16 毫秒的帧数。
  • 渲染时间:测试运行的每一帧的渲染时间分布。大于 32 毫秒的渲染时间会导致您的 UI 明显变慢。 700+ 的渲染时间表示冻结帧。渲染数据是从dumpsys graphicsstats收集的。

详细的测试结果

详细的测试结果在您​​运行测试后的 90 天内可用,并存储在 Google Cloud Storage 存储桶中(但在 Firebase 控制台中也可见)。在测试执行结果页面点击测试结果,您可以在云端存储桶中查看详细的测试结果。当详细的测试结果不再可用时,您仍然可以看到哪些测试通过或失败。

要将详细的测试结果保留 90 天以上,您需要使用--results-bucket gcloud 命令行选项将这些测试结果发送到您拥有的 Cloud Storage 存储分区。然后,您可以设置期限设置以确定结果在您的 Cloud Storage 存储分区中存储多长时间。有关如何更改年龄设置的信息,请参阅生命周期条件