解读 CTS 结果

CTS 测试结果放在以下文件中

CTS_ROOT/android-cts/results/start_time.zip

如果您自己构建了 CTS,则 CTS_ROOT 类似于 out/host/linux-x86/cts,但因平台而异。这反映了您从此网站 下载的预构建官方 CTS 解压缩到的路径。

在压缩包内,test_result.xml 文件包含实际结果。

显示 Android 10 及更高版本的结果

zip 归档文件中存在 test_result.html 文件,您可以直接在任何兼容 HTML5 的 Web 浏览器中打开它

显示 Android 10 之前的版本的结果

在任何兼容 HTML5 的 Web 浏览器中打开 test_result.xml 文件以查看测试结果

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

读取测试结果

测试结果的详情取决于您使用的 CTS 版本

  • 适用于 Android 6.0 及更早版本的 CTS v1
  • 适用于 Android 7.0 及更高版本的 CTS v2

设备信息

在 CTS v1 及更早版本中,选择“设备信息”(“测试摘要”上方的链接)以查看有关设备、固件(制造商、型号、固件版本、平台)和设备硬件(屏幕分辨率、键盘、屏幕类型)的详细信息。CTS v2 不显示设备信息。

测试摘要

测试摘要”部分提供已执行的测试计划详情,例如 CTS 计划名称以及执行开始和结束时间。它还提供了通过、失败、超时或无法执行的测试数量的汇总摘要。

Android 10 CTS 示例测试摘要

Android 10 CTS test summary

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

CTS v2 示例测试摘要

CTS v2 test summary

图 2:CTS v2 示例测试摘要

CTS v1 示例测试摘要

CTS v1 test summary

图 3:CTS v1 示例测试摘要

测试报告

下一部分“CTS 测试报告”提供了每个软件包通过的测试摘要。

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

此外,XML 文件中提供了失败的堆栈轨迹,但未包含在报告中以确保简洁性 - 使用文本编辑器查看 XML 文件应提供测试失败的详细信息(搜索与失败的测试对应的 [Test] 标记,并在其中查找 [StackTrace] 标记)。

显示 CTS v2 示例测试报告

CTS v2 test report

图 4:CTS v2 示例测试报告

显示 CTS v1 示例测试报告

CTS v1 test report

图 5:CTS v1 示例测试报告

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

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

分类整理测试失败

使用以下建议来分类整理测试失败。

  • 如果测试因前提条件不正确而失败,请验证您的 CTS 环境是否设置正确。这包括物理环境、桌面机器设置和 Android 设备设置。
  • 如果测试显得异常不稳定,请验证设备稳定性、测试设置或环境问题。
  • 如果仍然失败,请隔离重试测试。
  • 检查导致测试失败的外部因素,例如
    • 环境设置。例如,配置错误的桌面机器设置可能是导致所有受测设备 (DUT)(包括参考设备)上发生测试失败的原因。
    • 外部依赖项。例如,如果从特定时间点开始多个站点的所有设备上的测试都失败,则可能是错误的网址导致了问题。
    • 如果 DUT 不包含安全补丁,则其安全测试失败是预期的。
  • 验证和分析通过和失败设备之间的差异。
  • 分析断言、日志、错误报告和 CTS 源代码。对于 HostTest,断言和日志可能非常通用,因此检查并附加设备 logcat 也很有帮助。
  • 提交测试改进补丁以帮助减少测试失败。

保存部分结果

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

当 Tradefed 未生成任何测试结果时,这意味着测试运行期间发生了严重问题,从而使测试结果不可信。部分结果被认为没有帮助,因为它在调查设备问题时没有提供价值。