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

分析 Firebase 测试实验室结果

有多种方法可以使用 Firebase Test Lab 在您的 Android 应用程序上运行测试,包括命令行界面Android Studio 、Firebase 控制台中的Test Lab UITesting 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 测试的辅助功能结果的说明,请访问辅助功能扫描仪入门

有关如何改进应用程序辅助功能的一般信息,请访问Android 开发人员辅助功能文档

性能指标

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

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

图形性能细节

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

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

详细的测试结果

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

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