运行 CTS 验证程序多设备测试

本页介绍了如何针对 Android 16 及更高版本使用 CTS 验证程序 (CTS-V) 多设备测试。

设置主机端多设备测试

本部分介绍了如何设置多设备测试。

  1. 确保您的桌面设备符合 CTS 的操作系统要求
  2. 请按照安装桌面软件中的第 2 步和第 5 步操作,确保 adb、AAPT2 和 Python 已正确安装在您的桌面设备上。
  3. 准备两部匹配的被测设备 (DUT),且每部都已设置 CTS-V。

    • 如需了解如何设置 DUT,请参阅设置 DUT
    • 如需了解有关设置 CTS-V 的说明,请参阅设置
  4. 如果您要测试的模块不是 NFC,请按照设置标准的两设备测试中的说明操作。

  5. 如果您要测试 CDM 模块,除了标准的两设备设置之外,还应按照设置 CDM 测试进行操作。

设置标准的两设备测试

对于默认的两设备设置:

  1. 将两台匹配的 Android DUT 放置在相距约 20 厘米的位置。
  2. 为确保环境干净,请将这两台设备放入屏蔽盒中。

  3. (可选)设置 OTA 嗅探器以进行 Wi-Fi 调试。

设置 NFC 测试

NFC 测试使用一部 DUT 和一个 PN532 NFC 芯片。

如需设置 NFC 测试,请执行以下操作:

  1. 购买 PN532 NFC 芯片。我们建议使用 All-In-One PN532
  2. 在 DUT 上,前往设置应用。

  3. 启用 NFC

  4. 放置 NFC 芯片:

    • 对于手机,请将 DUT 的 NFC 读取器放置在图 1 所示位置:

      NFC 芯片位置

      图 1. NFC 芯片位置。

    • 对于其他设备类型,请将该芯片放置在设备的 NFC 天线旁边。

  5. 使用 USB 线将 PN532 NFC 芯片连接到测试工作站。

设置 CDM 测试

test_permissions_sync() 测试用例的行为因执行测试的设备的 build 类型而异。必须由原始设备制造商 (OEM) 测试可调试 build(userdebug 或 eng)和不可调试 build(user),并且这两种 build 都通过测试。

豁免

权限同步 API 实现的 CDD 子句仅要求该实现能够通过安全通道在设备之间成功传输数据。由于安全信道实现不是 CDD 合规性要求,因此在不可调试的(用户)build 上可以跳过此测试,但前提是您选择不支持 CDM 权限同步功能。

测试必须在可调试 build 上通过,没有例外情况。

在不可调试 build 上进行测试的先决条件

如果您不符合上述豁免条款,请确保满足以下前提条件。

安全信道使用 AVF (AttestationVerificationFramework) 来验证硬件的可信性。双方生成的认证包含有关各自的多项信息,以确保其系统中没有任何未经授权的更改。AVF 会在验证过程中检查以下状态:

  • 设备可以访问互联网
  • 设备使用经过验证的启动,并且 build 必须使用 release-key(而非 dev-key)签名
  • 设备的引导加载程序已锁定。如需详细说明,请参阅锁定引导加载程序
  • 操作系统、关键启动和关键供应商补丁级别在 12 个月内。请勿使用超过一年的 build
  • 设备认证由供应商批准的根证书之一提供支持。在 vendor_required_attestation_certificates.xml 资源叠加层中指定受信任的根证书。

运行主机端多设备测试(AOSP 16 或更高版本)

CTS 验证程序 16 引入了对主机端多设备测试的支持。这些测试可以在主机上使用自动化脚本执行,而不是在设备上执行手动测试操作。每项测试完成后,结果会自动上传到 DUT 并显示在 CTS 验证程序应用中。

本部分介绍如何运行主机端多设备测试。

运行多设备测试

如需运行多设备测试,请执行以下操作:

  1. 在测试工作站上,从解压缩 CTS-V ZIP 软件包的目录中启动 cts-v-host 控制台:

    ./android-cts-verifier/android-cts-v-host/tools/cts-v-host-tradefed
    
  2. 在 DUT 上的 CTS 验证程序应用中,点击主机端测试。图 2 显示了 CTS 验证程序应用中的主机端测试:

    CTS 验证程序应用中的主机端多设备测试

    图 2. CTS 验证程序应用中的主机端多设备测试。

    系统会显示主机端多设备测试模块列表。

  3. 确定要运行的测试模块的名称。例如,CompanionDeviceManager 模块列为 CtsCompanionDeviceManagerMultiDeviceTestCases

  4. 在 cts-v-host 控制台中,运行以下命令: 注意:如果您在 CTS 验证程序应用中点按主机端模块,则不会看到各个测试用例的列表。实际上,界面会于模块在主机上执行后自动填充测试用例结果。

  5. 在 xTS 控制台中,运行以下命令:

    run cts-v-host -m test_module_name
    

    例如:

    run cts-v-host -m CtsCompanionDeviceManagerMultiDeviceTestCases
    

    xTS 控制台运行完测试后,结果会显示在 CTS 验证程序应用中。标记为绿色的测试已通过。标记为红色的测试已失败。图 3 显示了 CtsCompanionDeviceManager 测试的示例结果:

    CTS 验证程序应用中的主机端多设备测试结果

    图 3. CTS 验证程序应用中的主机端多设备测试结果。

排查多设备测试问题

本部分提供可能问题的排查帮助。

修复了 NFC 测试期间 GetFirmwareVersion 无响应的问题

如果您在运行多设备测试时收到消息 verify_firmware_version RuntimeError: No response for GetFirmwareVersion,则表示测试无法访问 PN532 NFC 板。

如需解决此问题,请确定主机上 PN532 NFC 板使用的串行路径(例如 dev/ttyUSB1),然后使用控制台中的 --module-arg 参数手动指定该路径:

run cts-v-host -m CtsNfcHceMultiDeviceTestCases --module-arg CtsNfcHceMultiDeviceTestCases:pn532_serial_path:/dev/ttyUSB1

修复了 NFC 测试期间出现的“Transaction failed”错误消息

如果您的所有 NFC 测试用例都收到消息 Transaction failed, check device logs for more information.,可能是因为 DUT 的 NFC 芯片无法检测到 PN532。

如果您有多部设备连接到主机,并且其中一些设备没有任何放置在顶部的 PN532,则可能选择了错误的 DUT。如需了解详情,请参阅设置 NFC 测试

如要解决此问题,请执行以下任一操作:

  • 使用 -s 标志在主机端测试命令中设置正确的 DUT 序列号。

  • 断开所有非 DUT 设备与主机的连接。

CDM 测试用例 test_permissions_sync 被忽略

如果测试是在不可调试的设备上运行,请查看您是否豁免。否则,请确保这两台设备都符合前提条件