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

本页面介绍了如何针对 Android 16 QPR2 或更高版本使用 Better Together CTS 验证程序 (CTS-V) 测试。

设置主机端多设备测试

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

  1. 验证您的桌面设备是否满足 CTS 的操作系统要求
  2. 按照安装桌面软件中的第 2 步和第 5 步操作,以安装并验证 adb、AAPT2 和 Python 是否已正确安装在您的桌面上。

    • 您的 Python 版本应为 3.11 或更高版本。如需确定 Python 版本,请运行 python3 --version。如果版本低于 3.11,请安装最新的官方 Python 版本。 如需了解详情,请参阅 python.org下载部分
    • 某些测试要求主机具有 Python venv 模块。在 Debian 和 Ubuntu 系统上,此模块可能未默认安装。如需确定您的 Python 版本是否包含 venv 模块,请运行 python3 -m venv venv。如果此命令失败,系统会显示一条错误消息。 按照提示安装 python3.x-venv 软件包。
  3. 准备两部匹配的被测设备 (DUT),且每部都已设置 CTS-V。

    • 如需了解如何设置 DUT,请参阅设置 DUT
    • 如需了解有关设置 CTS-V 的说明,请参阅设置
  4. 前往相应测试类型的设置部分:

    如果您的测试未在此列表中,请继续执行设置标准的两设备测试

设置 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 芯片连接到测试工作站。

可选:设置 Wi-Fi AP 连接测试

Wi-Fi 接入点 (AP) 连接测试 (CtsWifiConnectionTests) 用于测试 DUT 与 AP 之间的连接。我们强烈建议您运行这些测试,但在 CTS-V Android 16 16 QPR2 中,这些测试不是必需的。

这些测试需要 DUT 和 OpenWrt Banana Pi R3 AP。

如需设置 Wi-Fi AP 连接测试,请执行以下操作:

  1. 购买此表中列出的 Banana Pi R3 AP 和配件:

    数量
    BPi-R3 板,类似于 Banana Pi BPI-R3 路由器板,采用 MediaTek MT7986 芯片设计,支持 Wi-Fi 6、2G DDR RAM、8G eMMC 闪存板载 1
    BPi-R3 铝制表壳,类似于 BPI-R3 Iron 表壳 1
    BPi-R3 铝制散热器(冷却风扇),类似于 BPI-R3 带风扇的铝制散热器 1
    带线缆的 2 和 5 GHz 天线,类似于 BPI 商店中的 5DB 天线 8
    电源适配器,类似于 12V/2A 直流电源 1

    如需购买,请参阅 Banana Pi BPI-R3 页面的轻松购买部分。

  2. 设置接入点。如需了解如何设置接入点,请参阅设置 Banana Pi BPI-R3 AP

  3. 可选:如果您没有屏蔽箱,我们建议使用 JTP-SR101 屏蔽箱。请使用以下信息购买此盒子:

    东莞市正声电子科技有限公司有限公司
    中国广东省东莞市寮步镇潘龙路博汇工业园
    联系人:Forest Pan
    电子邮件地址:forest.pan@jtpmak.cn
    电话(中国):+86 18676993556

  4. 将 DUT 和 AP 连接到主机,并放置在 RF 屏蔽箱中。DUT 和 AP 之间的距离应至少为 10 厘米。图 2 显示了此配置:

    屏蔽箱中的 DUT 和 AP

    图 2. 屏蔽箱中的 DUT 和 AP。

  5. 使用 SSH 验证 AP 是否可从主机访问。

设置标准的两设备测试

对于默认的两设备设置:

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

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

设置 CDM 测试

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

豁免

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

测试必须在可调试 build 上通过,不得出现任何异常。

在不可调试的 build 上进行测试的前提条件

如果您不符合上述任何豁免条款,请验证您是否满足以下前提条件。

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

  • 设备可以访问互联网
  • 设备使用验证启动,并且 build 必须使用发布密钥(而非开发密钥)签名
  • 设备已锁定引导加载程序。如需查看详细说明,请参阅锁定引导加载程序
  • 操作系统、关键启动和关键供应商补丁程序级别在 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 验证程序应用中,点击主机端测试。 图 3 显示了 CTS 验证程序应用中的主机端测试:

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

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

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

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

  4. 在 cts-v-host 控制台中,运行以下命令:

    run cts-v-host -m test_module_name
    

    例如:

    run cts-v-host -m CtsCompanionDeviceManagerMultiDeviceTestCases
    

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

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

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

可选:运行 Wi-Fi AP 连接测试

请按照以下步骤运行 Wi-Fi AP 连接测试:

  1. 修改测试平台配置文件 (WifiConnectionTestbed.yaml)。此文件位于解压缩 CTS-Verifier 的目录中:

    ./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yaml
    
  2. 根据本地 SSH 设置,将 hostname 字段的值更改为 AP 的 IP 地址。如需确定 IP 地址,请参阅查找 AP 的 IP 地址

    以下示例展示了 WifiConnectionTestbed.yaml 文件中 hostname 字段的位置:

    TestBeds:
    - Name: WifiConnectionTestbed
      Controllers:
        # Specify settings for the AP.
        OpenWrtDevice:
        - hostname: AP-IP
          skip_init_reboot: True
    
  3. 在 cts-v-host 控制台中,运行以下命令:

    run everything -m CtsWifiConnectionTests
    

排查多设备测试问题

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

修复了 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 被忽略

如果测试是在不可调试的设备上运行,请查看您是否获得豁免。否则,请确认两台设备均满足前提条件