CTS v2 命令控制台

使用 CTS v2 控制台

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

选择计划

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

  • cts - 从预装的 CTS 套件运行 CTS。
  • cts-camera - 从预装的 CTS 套件运行 CTS-camera。
  • cts-java - 从预装的 CTS 套件运行核心 Java 测试。
  • cts-pdk - 运行有助于验证 PDK 融合 build 的测试。
  • 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 控制台命令参考

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

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

压缩后的下载文件会解压缩到 extdir。如果您想要去掉膨胀后的输出,请使用 -q 选项:

unzip -q android-cts-9.0_r15-linux_x86-arm.zip -d extdir

如果您想要解压缩到当前目录,请不要使用 -d 选项,只需运行以下命令:

unzip -q android-cts-9.0_r15-linux_x86-arm.zip

运行 说明
run cts

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

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

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

run cts-instant

对于 Android 9,运行默认的适用于免安装应用的 CTS 计划。

run cts --module-parameter INSTANT_APP

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

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

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

run retry

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

Android 9 或更高版本不允许运行 run cts --retry

run cts-sim

适用于 Android 11 或更高版本。在装有 SIM 卡的设备上运行部分测试。

--device-token

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

--enable-token-sharding

仅适用于 Android 10 或更高版本。自动匹配需要相应 SIM 卡类型的测试。无需提供设备序列号即可执行 SIM 卡相关测试用例。支持的 SIM 卡:SIM_CARDUICC_SIM_CARDSECURE_ELEMENT_SIM_CARD

run cts-dev

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

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

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

--subplan subplan_name 运行指定的子计划。
--module/-m test_module_name --test/-t test_name  运行指定的模块和测试。例如,run cts -m Gesture --test android.gesture.cts.GestureTest#testGetStrokes 会运行特定的软件包、类或测试。
--retry 重新尝试运行在以前的会话中失败或未执行的所有测试。 使用 list results 获取会话 ID。
--retry-type NOT_EXECUTED 仅重新尝试运行在以前的会话中未执行的测试。 使用 list results 获取会话 ID。
--shards number_of_shards 对于 Android 8.1 或更低版本。将 CTS 运行分为指定数量的独立块,以便在多台设备上并行运行。
--shard-count number_of_shards 对于 Android 9:将 CTS 运行分为指定数量的独立块,以便在多台设备上并行运行。
--serial/-s deviceID 在特定设备上运行 CTS。
--include-filter "test_module_name test_name" 使用指定的模块或测试软件包、类和案例运行。例如,run cts --include-filter "CtsCalendarcommon2TestCases android.calendarcommon2.cts.Calendarcommon2Test#testStaticLinking" 会包含指定的模块。

重新运行测试时不支持此命令选项。

--exclude-filter "test_module_name test_name" 从运行中排除指定的模块或测试包、类和案例。例如,run cts --exclude-filter "CtsCalendarcommon2Test android.calendarcommon2.cts.Calendarcommon2Test#testStaticLinking" 会排除指定的模块。
--log-level-display/-l log_level 以显示给 STDOUT 的最小指定日志级别运行。有效值:[VERBOSEDEBUGINFOWARNERRORASSERT]。
--abi abi_name 强制要求测试在给定的 ABI(32 或 64)上运行。默认情况下,CTS 会为设备支持的每个 ABI 运行一次测试。
--logcat-on-failure,
--bugreport-on-failure,
--screenshoot-on-failure
显示更详尽的故障信息并帮助进行诊断。
--device-token 指定具有给定令牌的给定设备,例如 --device-token 1a2b3c4d:sim-card
--skip-device-info 跳过收集设备相关信息的步骤。
--skip-preconditions 跳过前提条件以缩减运行时间,从而对新测试执行迭代开发。这会绕过验证和设置设备配置(例如推送媒体文件或检查 Wi-Fi 连接)。
列表 说明
list modules 列出存储区中的所有可用测试模块。
list planslist configs 列出存储区中的所有可用测试计划(配置)。
list subplans 列出存储区中的所有可用子计划。
list invocations 列出设备上当前正在执行的“运行”命令。
list commands 列出当前在队列中等待分配给设备的所有“运行”命令。
list results 列出当前存储在存储区中的 CTS 结果。
list devices 列出当前连接的设备及其状态。

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

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

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

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

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