运行 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 <session-number>
              

       

      若要详细了解如何实现重试功能,请参阅 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 <test_plan_name>运行指定的测试计划。
--module/-m <test_module_name>  [--module/-m <test_module2>...]运行指定的测试模块。例如,run cts --module CtsGestureTestCases 会执行手势测试模块(该命令可以简化为 run cts -m Gesture)。
run cts -m Gesture --test android.gesture.cts.GestureTest#testGetStrokes会运行特定的包、类或测试。
--subplan <subplan_name>运行指定的子计划。
-- module/-m <test_module_name> -- test <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 <module_name>  [--include-filter <module2>...]仅使用指定的模块运行。
--exclude-filter <module_name>  [--exclude-filter <module2>...]运行时排除指定的模块。
--log-level-display/-l <log_level>以显示给 STDOUT 的最小指定日志级别运行。有效值:[VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT]。
--abi <abi_name>强制要求测试在给定的 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 <subplan_name>
--result-type
[pass | fail | timeout |notExecuted]
[--session/-s <session_id>]
创建从上一会话衍生的子计划;此选项会生成可用于运行测试子集的子计划。

唯一的必选项是 --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 <test_plan_name>运行指定的测试计划
--package/-p <test_package_name>  [--package/-p <test_package2>...]运行指定的测试包
--class/-c <class_name> [--method/-m <test_method_name>运行指定的测试类和/或方法
--continue-session运行上一个 CTS 会话中所有未执行的测试;会话 testResult.xml 将会更新成最新结果
--shards <number_of_shards>将 CTS 运行分为指定数量的独立块,以便在多台设备上并行运行
--serial/-s <deviceID>在特定设备上运行 CTS
-t <class_name>#<test_method_name>运行特定测试方法
--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 <plan_name>
--result/-r
[pass | fail | timeout | notExecuted]
[--session/-s <session_id>]
创建衍生自给定结果会话的计划;使用此选项可重新运行报告并验证测试问题

Was this page helpful?

  • 4
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值