运行 CTS 测试

Trade Federation 是一种持续测试框架,用于在 Android 设备上运行测试。如需运行兼容性测试套件 (CTS),请先阅读 Trade Federation 概览,了解关于 Tradefed 测试框架的说明。

如需运行测试计划,请执行以下操作:

  1. 按照 Android 设备设置 来设置被测设备 (DUT)。
  2. 请确保已安装最新版本的 Android 调试桥 (adb)Android 资源打包工具 (AAPT),并已将这两个工具的位置添加到计算机的系统路径中。如需了解如何安装这些工具,请参阅设置 CTS:adb 和 AAPT
  3. 已发布的 CTS build 下载到您的 Linux 主机上,并将该 build 解压缩到主机位置。
  4. 至少连接一个设备。如需准备 DUT,请执行以下操作:
    • 主屏幕按钮以将设备设为主屏幕。
    • 请勿将 DUT 用于任何其他任务。
    • 必须使其保持静止状态,以免触发传感器活动。
    • 让设备相机对准一个可以聚焦的物体。
    • 在运行 CTS 时,不要按设备上的任何键。按 DUT 上的键或轻触其屏幕都会干扰正在运行的测试,并且可能会导致测试失败。
  5. 从解压缩 CTS 软件包所在的文件夹中启动 CTS 控制台 cts-tradefed 脚本。在主机的命令行 shell 上运行以下命令:

    ./android-cts/tools/cts-tradefed
  6. 运行默认测试计划(包含所有测试软件包):

    cts-tradefed > run cts
    • 如果想要缩短测试执行时间,您可以在多个设备上将测试分片。分片要求主机至少连接两台设备,但为了提高效率,建议使用六台或以上的设备。在多台设备上进行分片时:

      • 对于 Android 9 及更高版本,请使用命令选项

        --shard-count number_of_shards
      • 对于 Android 8.1 及更低版本,请使用命令选项

        --shards number_of_shards
    • 如果不想运行整个测试套件,您可以从命令行运行自己选择的 CTS 计划

      run cts --plan test_plan_name

      如需查找测试计划名称,请执行以下操作:

      • 对于 Android 7.0 及更高版本,如需查看测试模块列表,请输入

        list modules
      • 对于 Android 6.0 及更低版本,如需查看代码库中的测试计划列表,请输入

        list plans
      • 对于 Android 6.0 及更低版本,如需查看代码库中的测试软件包列表,请输入

        list packages
    • 如需了解依赖于 CTS 版本的其他命令选项,请参阅控制台命令参考文档,或参阅 Tradefed 控制台中的“help all”。

  7. 运行多次重试会话,直到完成所有测试模块且在最后两次重试会话中测试失败次数相同。

    • 对于 Android 9 及更高版本,请使用

      run retry --retry session_number --shard-count number_of_shards
    • 对于 Android 7.0 - 8.1,请使用

      run cts --retry session_number --shards number_of_shards
    • 如需了解依赖于 CTS 版本的其他重试命令选项,请参阅 CTS v2 命令控制台

    • 如需了解 CTS 重试的实现详情,请参阅 Trade Federation 套件重试

  8. 仅在失败的参数化测试中运行重试会话。系统不会重试已通过的参数化测试。

    • 对于 Android 11 及更高版本,run cts 命令中默认已启用以下重试命令选项:

      run retry --retry  --new-parameterized-handling
  9. 查看控制台中报告的测试进度和结果。

使用 Android Test Station 运行 CTS

Android Test Station 是一款自动化测试工具,使用该工具,Android 开发者和测试工程师可以通过界面运行标准测试套件。它可与 Android 兼容性测试套件 (CTS) 配合使用。

该工具通过 ATS 用户指南公开提供,其代码在 AOSP 中开源(multitest_transporttradefed_cluster)。

针对替代模式运行 CTS

CTS 10 R4 版本添加了一个测试计划,适用于具有替代模式或多种屏幕模式的设备。请使用 run cts-foldable 执行替代模式测试计划。

替代屏幕模式的通过或失败测试用例将附加来自 display_mode 的值,例如 testcase1[display_mode=0]

在 CTS 13 中,DeviceStateManager API 允许在可折叠设备的不同设备状态下运行具有以下配置选项的测试模块。CTS 根据设备中定义的屏幕折叠状态自动执行测试,无需运行 cts-foldable 测试计划。

<option name="config-descriptor:metadata" key="parameter" value="all_foldable_states" />

CTS 中的多设备测试

Android 13 及更高版本支持多设备测试。需要多台设备的测试将在 CTS 运行期间自动执行。CTS 13 包含一些使用分片时会自动触发的多设备测试。虽然测试不需要对物理设置进行其他更改,但需要安装 virtualenv,才能使测试正常运行。如需了解详情,请参阅多设备套件

运行多设备测试

如需单独运行多设备测试,请使用以下代码:

  cts-tradefed > run cts-multidevice
  

支持所有常规选项。如需定位到特定设备,请添加 --serial <serial1> --serial <serial2> 等来表示定位到的设备的编号。

如需自动触发多设备测试,请使用分片,如 --shard-count 2 中所示。