运行自动化 CTS 测试(Android 11 或更高版本)

运行 CTS 自动化测试有两种选择

  • Trade Federation 是一款应用和测试框架,可让您从命令行运行测试。从根本上说,该框架允许您使用 @Test 注解来注解测试,并且该应用会查找并运行这些测试。

  • OmniLab Android Test Station 是一款应用,可让您在 GUI 中运行测试。

本页介绍如何使用 Trade Federation 运行自动化测试。有关使用 OmniLab Android Test Harness 运行测试的说明,请参阅OmniLab Android Test Station

运行所有自动化 CTS 测试

Trade Federation 包含 CTS 控制台,这是一个用于运行测试的命令行界面。要运行整个自动化 CTS 测试套件

  1. 请确保您已按照设置 CTS 自动化测试中的说明进行操作。
  2. 在您的测试工作站上,通过从 CTS 软件包解压缩到的文件夹中运行 cts-tradefed 脚本来启动 CTS 控制台

    ./android-cts/tools/cts-tradefed
    

    CTS 控制台会显示一个光标,供您键入 CTS 命令 (cts-tradefed >)。

  3. cts 测试计划包含所有自动化 CTS 测试。执行以下命令以运行 cts 测试计划

    run cts
    

    自动化 CTS 测试开始执行。请注意以下事项

    • Android 13 及更高版本支持多设备测试。这些测试仅在使用分片时自动运行。有关分片的更多信息,请参阅提高测试执行时间。如果您想手动运行这些测试,请参阅运行多设备测试

    • 每当运行 CTS 时,请按 ctrl+c 停止现有 CTS 控制台,然后重新运行 CTS 控制台。

    • 您无法在单个主机上运行多个 CTS 版本,因为每个版本都使用现有的开放位置代码 (OLC) 服务器打开。

  4. 查看测试结果。有关更多信息,请参阅解释 CTS 结果

  5. 如果这是您的首次测试运行,则可能存在由于您无法控制的问题而导致测试失败的情况。例如,网络连接可能速度缓慢,或者 GPS 信号可能较弱。重新运行(重试)测试,直到所有测试模块都完成,并且最后两次重试会话之间的测试失败次数相同

    run retry --retry session_number`
    
  6. 在重试后测试失败情况保持一致后,请专注于调试剩余的失败测试。有关问题排查测试结果的信息,请参阅分类测试失败CTS 测试问题排查

运行多屏设备的 CTS

如果您的设备运行的是 Android 11 或 12,并且您的设备有多个屏幕,则必须单独运行 cts-foldable 测试计划

run cts-foldable

备用屏幕模式的通过或失败测试用例会附加 display_mode 中的值,例如 testcase1[display_mode=0]

运行多设备测试

执行以下命令以运行 cts-multidevice 测试计划

run cts-multidevice

运行单个测试计划

您可以运行单个测试计划,而不是一次运行所有测试计划。此选项有助于节省时间并专注于一组特定的测试。要运行单个测试计划

  1. 通过执行 list modules 命令来确定要运行的测试计划的名称。

  2. 运行测试计划

    run cts --plan test_module_or_plan_name
    

提高测试执行时间

如果您想提高测试执行时间,可以在多个设备上对测试进行分片。分片需要主机连接至少两台设备,但为了提高效率,建议连接六台或更多设备。

要在 Android 11 或更高版本上对测试进行分片,请运行

run cts --shard-count number_of_shards

此外,在运行测试进行验证之前,您可以通过使用 CTS run cts-dev 命令来提高测试执行时间。此命令会跳过前提条件、设备信息收集和所有系统状态检查器。它还仅在单个 ABI 上运行测试。