解读 CTS 测试结果

CTS 测试结果位于以下文件中:

CTS_ROOT/android-cts/results/start_time.zip

如果您是自己构建的 CTS,CTS_ROOT 将类似于 out/host/linux-x86/cts,但会因平台而异。该路径取决于您解压缩从此网站下载的预构建官方 CTS 文件时所用的路径。

该 zip 压缩包中的 test_result.xml 文件包含了实际的结果。

显示 Android 10 及更高版本结果

ZIP 归档文件中包含 test_result.html 文件,您可直接在任何支持 HTML5 的网络浏览器中打开该文件

显示 Android 10 以下版本结果

在任何支持 HTML5 的网络浏览器中打开 test_result.xml 文件即可查看测试结果

如果使用 Chrome 浏览器打开时,此文件显示空白页,请更改浏览器配置,以启用 --allow-file-access-from-files 命令行 flag。

阅读测试结果

测试结果包含的详细信息取决于您所使用的 CTS 版本:

  • CTS v1,适用于 Android 6.0 及更低版本
  • CTS v2,适用于 Android 7.0 及更高版本

设备信息

在 CTS v1 及更低版本中,选择“Device Information”(“Test Summary”上方的链接)可查看关于设备、固件(品牌、型号、固件版本号、平台)和设备硬件(屏幕分辨率、键盘、屏幕类型)的详细信息。CTS v2 不显示设备信息。

测试摘要

“Test Summary”部分会提供已执行的测试计划的详细信息,例如 CTS 计划的名称以及执行的开始时间和结束时间。此外,这一部分还会提供有关通过、失败、超时或无法执行的测试数量的汇总摘要。

Android 10 CTS 测试摘要示例

Android 10 CTS 测试摘要

图 1:Android 10 CTS 测试摘要示例

CTS v2 测试摘要示例

CTS v2 测试摘要

图 2:CTS v2 测试摘要示例

CTS v1 测试摘要示例

CTS v1 测试摘要

图 3:CTS v1 测试摘要示例

测试报告

下一部分为 CTS 测试报告,它会按文件包显示已通过的测试的摘要。

接下来是实际执行的测试的详细信息。该报告会列出测试包、测试套件、测试用例和已执行的测试。它会显示测试执行结果:通过、失败、超时或未执行。如果测试失败,该报告会提供详细信息以供诊断原因。

此外,为免报告太过冗长,失败测试的堆栈轨迹信息会包含在 XML 文件中,而不会包含在报告中。使用文本编辑器查看该 XML 文件,即可了解有关测试失败的详细信息(搜索与失败测试对应的 [Test] 标记,并在其中查找 [StackTrace] 标记)。

显示 CTS v2 测试报告示例

CTS v2 测试报告

图 4:CTS v2 测试报告示例

显示 CTS v1 测试报告示例

CTS v1 测试报告

图 5:CTS v1 测试报告示例

查看 test_result.xml 以了解未完成的测试模块

如需确定某个测试会话中的未完成模块数量,请运行命令“list results”。系统会列出之前每个会话的“已完成模块数量”和“模块总数量”。要确定哪些模块已完成,哪些模块未完成,请打开 test_result.xml 文件,并读取结果报告中每个模块的“done”属性的值。“done”值为“false”的模块,就是未完成的模块。

对测试失败情况进行分类

在对测试失败情况进行分类时,请遵循以下建议。

  • 如果测试因前提条件不正确而失败,请验证您的 CTS 环境设置是否正确。这包括物理环境、台式机设置和 Android 设备设置。
  • 如果测试显得极其不稳定,请验证设备稳定性、测试设置或环境问题。
  • 如果测试仍然失败,请单独重试测试。
  • 检查是否存在会导致测试失败情况的外部因素,例如:
    • 环境设置。例如,配置有误的台式机设置可能会导致所有被测设备 (DUT)(包括参照设备)发生测试失败情况。
    • 外部依赖项。例如,如果从特定时间点开始,多个网站中所有设备的测试均失败,可能是因为网址不正确。
    • 如果 DUT 未包含安全补丁程序,其安全测试预计会失败。
  • 验证并分析已通过测试和未通过测试的设备之间的区别。
  • 分析断言、日志、错误报告和 CTS 源。 对于 HostTest,断言和日志可能比较泛化,因此,检查并附上设备 logcat 也很有帮助。
  • 提交测试改进补丁程序来帮助减少测试失败的情况。

保存部分结果

当测试调用失败时,Tradefed 不会保存部分测试结果。

如果 Tradefed 未生成任何测试结果,则表明测试运行期间发生了严重问题,因此导致测试结果不可信。我们认为部分结果对您没有任何帮助,因为在调查问题设备时,这种结果是没有任何价值的。