运行 CTS 测试命令

运行 CTS 测试

CTS tradefed 使用入门

您可以参阅 Trade Federation 概述,了解有关 Trade Federation(简称 tradefed 或 TF)持续测试框架的说明。

运行测试计划的操作如下:

  1. 至少连接一个设备。
  2. 在开始运行 CTS 时,按主屏幕按钮将设备设置为显示主屏幕。
  3. 当设备在运行测试时,不能执行任何其他任务,并且必须保持静止状态(以免触发传感器活动),同时要让相机指向某个可以聚焦的对象。
  4. 在运行 CTS 时,不要按设备上的任何键。按测试设备上的键或触摸其屏幕会干扰正在运行的测试,并且可能导致测试失败。
  5. 通过运行解压缩 CTS 包所得文件夹中的 cts-tradefed 脚本(例如 $ ./android-cts/tools/cts-tradefed)启动 CTS 控制台。
  6. 通过附加以下命令启动默认测试计划(包含所有测试包):run cts --plan CTS。这将启动测试兼容性所需的所有 CTS 测试。
    • 对于 CTS v2(Android 7.0 及更高版本),您可以输入 list modules 来查看测试模块列表。
    • 对于 CTS v1(Android 6.0 及更低版本),您可以输入 list plans 来查看存储区中的测试计划列表,也可以输入 list package 来查看存储区中的测试包列表。
  7. 或者,您也可以使用以下命令,从命令行中运行所选的 CTS 计划:cts-tradefed run cts --plan

    注意:您可以通过使用 run cts-dev 命令(而非 run cts)来缩减在 Android 7.0 (Nougat) 及更高版本中的运行时间。此命令会跳过前提条件、设备信息收集和所有系统状态检查工具。它还仅在单个 ABI 上运行测试。对于设备验证,请忽略此优化操作并添加所有前提条件和检查。

  8. 查看控制台中报告的测试进度和结果。
  9. 如果您的设备搭载的是 Android 5.0 或更高版本,并且声明支持 ARM 和 x86 ABI,则 ARM 和 x86 CTS 包都应运行。
  10. (可选)利用套件重试功能重新运行测试的以前会话:
    1. 使用以下命令查看以前的会话:
              cts-tf > l r
              

       

    2. 确定您需要的会话编号,并将其代入以下命令中:
              cts-tradefed run retry --retry 
              

       

      若要详细了解如何实现重试功能,请参阅 Trade Federation 的套件重试页面。

使用 CTS v2 控制台

对于 Android 7.0 或更高版本,您将使用 CTS v2。

选择计划

您可以选择以下测试计划:

  • cts - 从预装的 CTS 套件运行 CTS。
  • cts-camera - 从预装的 CTS 套件运行 CTS-camera。
  • cts-java - 从预装的 CTS 套件运行核心 Java 测试。
  • cts-pdk - 运行有助于验证与 PDK 融合的产品的测试。
  • everything - 兼容性套件的通用配置。

其他可用配置如下:

  • basic-reporters - 基本 CTS 报告程序的配置。
  • collect-tests-only - 从预装的 CTS 套件运行 CTS。
  • common-compatibility-config - 兼容性套件的通用配置。
  • cts-filtered-sample - 兼容性套件的通用配置。
  • cts-known-failures - CTS 已知故障的配置。
  • cts-preconditions - CTS 前提条件配置。
  • host - 在现有设备上运行单个基于主机的测试。
  • instrument - 在现有设备上运行单个 Android 工具测试。
  • native-benchmark - 在现有设备上运行原生压力测试。
  • native-stress - 在现有设备上运行原生压力测试。
  • recharge - 等待设备的电量接近耗尽状态,然后让设备保持充电状态的虚设测试。
  • testdef - 在现有设备上运行包含在 test_def.xml 文件中的测试。
  • util/wifi - 用于在设备上配置 Wi-Fi 的实用程序配置。
  • util/wipe - 擦除设备上的用户数据。

所有这些计划和配置都可以使用 run cts 命令执行。

CTS v2 控制台命令参考

表 1. 该表总结了用于各种用途的 CTS V2 控制台命令。

主机 说明
help 显示最常用命令的摘要
help all 显示可用命令的完整列表
version 显示版本。
exit 正常退出 CTS 控制台。所有当前正在运行的测试完成后,控制台将关闭。
运行 说明
run cts

在 Android Q 中,一起运行默认的 CTS 计划和适用于免安装应用的 CTS 计划(即完整的 CTS 调用)。对于 Android 9 及更低版本,则仅运行默认的 CTS 计划。此综合性选项(包含前提条件)可用于进行设备验证。有关要包含的内容,请参阅 cts.xml。

在测试过程中,CTS 控制台可以接受其他命令。

如果没有连接任何设备,CTS 台式机(或主机)将等待连接设备后再开始测试。如果连接了多台设备,则 CTS 主机将自动选择一台设备。

run cts-instant

在 Android 9 及更低版本中,运行默认的适用于免安装应用的 CTS 计划。

run cts --module-parameter INSTANT_APP

在 Android Q 中,运行默认的适用于免安装应用的 CTS 计划。

run cts --module-parameter INSTANT_APP --module/-m

在 Android Q 中,运行一个或多个指定的适用于免安装应用的 CTS 测试模块。

run retry --retry

仅适用于 Android 9 及更高版本。重新尝试运行在以前的会话中失败或未执行的所有测试。例如,run retry --retry -s 或 run retry --retry -- shard-count(包含 TF 分片)。Android 9 及更高版本不允许运行 run cts --retry

--device-token

适用于 Android 8.1 及更低版本。指定具有给定令牌的给定设备,例如,--device-token 1a2b3c4d:sim-card

--enable-token-sharding

仅适用于 Android Q。自动匹配需要相应类型的 SIM 卡的测试。无需提供设备序列号即可 SIM 卡相关测试用例。支持的 SIM 卡:SIM_CARDUICC_SIM_CARD 和 SECURE_ELEMENT_SIM_CARD

run cts-dev

运行默认的 CTS 计划(即完整的 CTS 调用),但跳过前提条件以缩减运行时间,从而对新测试执行迭代开发。这会绕过对设备配置的验证和设置(例如推送媒体文件或检查 Wi-Fi 连接),就如同使用了 --skip-preconditions 选项。此命令还会跳过设备信息收集和所有系统状态检查工具。它还仅在单个 ABI 上运行测试。对于设备验证,请忽略此优化操作并添加所有前提条件和检查。有关要排除的内容,请参阅 cts-dev.xml。

在测试过程中,CTS 控制台可以接受其他命令。

如果没有连接任何设备,CTS 台式机(或主机)将等待连接设备后再开始测试。如果连接了多台设备,则 CTS 主机将自动选择一台设备。

run retry

对于 Android 9:重新尝试运行在以前的会话中失败或未执行的所有测试。例如,run retry --retry -s 或 run retry --retry --shard-count(包含 TF 分片)。

Android 9 不允许运行 run cts --retry

--plan 运行指定的测试计划。
--module/-m  [--module/-m ...] 运行指定的测试模块。例如,run cts --module CtsGestureTestCases 会执行手势测试模块(该命令可以简化为 run cts -m Gesture)。
run cts -m Gesture --test android.gesture.cts.GestureTest#testGetStrokes会运行特定的包、类或测试。
--subplan 运行指定的子计划。
-- module/-m -- test   运行指定的模块和测试。例如,run cts -m Gesture --test android.gesture.cts.GestureTest#testGetStrokes 会运行特定的包、类或测试。
--retry 重新尝试运行在以前的会话中失败或未执行的所有测试。使用 list results 获取会话 ID。
--retry-type not_executed 仅重新尝试运行在以前的会话中未执行的测试。使用 list results 获取会话 ID。
--shards  对于 Android 8.1 及更低版本:将 CTS 运行分为指定数量的独立块,以便在多台设备上并行运行。
--shard-count  对于 Android 9:将 CTS 运行分为指定数量的独立块,以便在多台设备上并行运行。
--serial/-s 在特定设备上运行 CTS。
--include-filter  [--include-filter ...] 仅使用指定的模块运行。
--exclude-filter  [--exclude-filter ...] 运行时排除指定的模块。
--log-level-display/-l 以显示给 STDOUT 的最小指定日志级别运行。有效值:[VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT]。
--abi 强制要求测试在给定的 ABI(32 或 64)上运行。默认情况下,CTS 会为设备支持的每个 ABI 运行一次测试。
--logcat--bugreport 和 --screenshoot-on-failure 显示更详尽的故障信息并帮助进行诊断。
--device-token 指定具有给定令牌的给定设备,例如 --device-token 1a2b3c4d:sim-card
--skip-device-info 跳过收集设备相关信息的步骤。注意:运行 CTS 以寻求批准时,请勿使用此选项。
--skip-preconditions 跳过前提条件以缩减运行时间,从而对新测试执行迭代开发。这会绕过对设备配置的验证和设置(例如推送媒体文件或检查 Wi-Fi 连接)。
列表 说明
list modules 列出存储区中的所有可用测试模块。
list plans 或 list configs 列出存储区中的所有可用测试计划(配置)。
list subplans 列出存储区中的所有可用子计划。
list invocations 列出设备上当前正在执行的“运行”命令。
list commands 列出当前在队列中等待分配给设备的所有“运行”命令。
list results 列出当前存储在存储区中的 CTS 结果。
list devices 列出当前连接的设备及其状态。

 

“可用”设备是可正常运行的空闲设备,可用于运行测试。

 

“不可用”设备是可通过 adb 查看但不响应 adb 命令的设备,不会分配用于测试。

 

“已分配”设备是当前正在运行测试的设备。

转储 说明
dump logs 为所有正在运行的调用转储 tradefed 日志。
添加 说明
add subplan --name/-n
--result-type
[pass | fail | timeout |notExecuted]
[--session/-s ]
创建从上一会话衍生的子计划;此选项会生成可用于运行测试子集的子计划。

唯一的必选项是 --session。其他选项都是可选的,但如果选用这些选项,必须后跟一个值。--result-type 选项可重复使用;例如 add subplan --session 0 --result-type passed --result-type failed 是有效的。

使用 CTS v1 控制台

对于 Android 6.0 或更早版本,您将使用 CTS v1。

选择计划

您可以选择以下测试计划:

  • CTS - 测试兼容性所需的所有测试。
  • Signature - 所有公开 API 的签名验证
  • Android - 针对 Android API 的测试
  • Java - 针对 Java 核心库的测试
  • VM - 针对 ART 或 Dalvik 的测试
  • Performance - 针对实施的性能测试

您可以使用 run cts 命令执行这些测试。

CTS v1 控制台命令参考

表 1. 该表总结了用于各种用途的 CTS v1 控制台命令。

主机 说明
help 显示最常用命令的摘要
help all 显示可用命令的完整列表
exit 正常退出 CTS 控制台。所有当前正在运行的测试完成后,控制台将关闭
运行 说明
run cts 运行指定的测试并显示进度信息。需要指定 --plan--package--class或 --continue-session 中的一个。

在测试过程中,CTS 控制台可以接受其他命令

如果没有连接任何设备,CTS 台式机(或主机)将等待连接设备后再开始测试。

如果连接了多台设备,则 CTS 主机将自动选择一台设备

--plan 运行指定的测试计划
--package/-p  [--package/-p ...] 运行指定的测试包
--class/-c [--method/-m 运行指定的测试类和/或方法
--continue-session 运行上一个 CTS 会话中所有未执行的测试;会话 testResult.xml 将会更新成最新结果
--shards  将 CTS 运行分为指定数量的独立块,以便在多台设备上并行运行
--serial/-s 在特定设备上运行 CTS
-t # 运行特定测试方法
--force-abi 32|64 在 64 位设备上,仅对 32 位或 64 位 ABI 运行测试
--skip-preconditions 跳过前提条件以缩减运行时间,从而对新测试执行迭代开发。这会绕过对设备配置的验证和设置(例如推送媒体文件或检查 Wi-Fi 连接)。
列表 说明
list packages 列出存储区中的所有可用测试包
list plans 列出存储区中的所有可用测试计划
list invocations 列出设备上当前正在执行的“运行”命令
list commands 列出当前在队列中等待分配给设备的所有“运行”命令
list results 列出当前存储在存储区中的 CTS 结果
list devices 列出当前连接的设备及其状态

 

“可用”设备是指运行正常、可用来执行测试的空闲设备

 

“不可用”设备是指可通过 adb 看到但不响应 adb 命令的设备,不会分配用于测试

 

“已分配”设备是当前正在运行测试的设备

添加 说明
add derivedplan --plan
--result/-r
[pass | fail | timeout | notExecuted]
[--session/-s ]
创建衍生自给定结果会话的计划;使用此选项可重新运行报告并验证测试问题

Was this page helpful?

你可能感兴趣的:(运行 CTS 测试命令)