本文档介绍如何运行多设备 NFC 测试。
满足前提条件
在运行多设备 NFC 测试之前,请执行以下操作
准备用于测试的 DUT 和 PN532 NFC 读取器
完成之前的步骤后,请按照以下步骤操作,准备用于测试的 DUT 和 PN532 NFC 读取器
- 通过 USB 将 DUT 连接到主机。
- 授予主机通过 ADB 访问 DUT 的权限。
在 DUT 上安装 CTS 验证程序应用 (
CtsVerifier.apk
)extract root/out/host/linux-x86/cts-verifier/android-cts-verifier.zip cd android-cts-verifier adb install -r -g CtsVerifier.apk
安装 NFC 测试所需的 APK
cd MultiDevice adb install -r -g NfcEmulatorTestApp.apk
为 DUT 设置 NFC
按照以下步骤为 DUT 设置 NFC
- 在 DUT 上,转到设置菜单。
- 查找 NFC 或 已连接的设备部分。
- 确保 NFC 切换开关已开启。
将 NFC 芯片放在手机的 NFC 读取器上
- 获取 PN532 NFC 芯片。我们推荐使用 All-In-One PN532,非 BLE 选项。
- 使用 USB 电缆将 PN532 NFC 芯片连接到 Linux 主机。
- 将 PN532 NFC 芯片放在手机的 NFC 读取器上方,如下图所示
图 1. NFC 芯片放置。
设置测试环境
按照以下步骤设置测试环境
运行以下命令以设置测试环境
cd MultiDevice source build/envsetup.sh
此命令检查 Python 并设置
PYTHONPATH
环境变量。如果终端未打印任何错误,则环境已准备好运行多设备测试。如果您在运行时看到错误消息
libtinfo.so.6: no version information available (required by /bin/sh)
,请运行以下命令以重命名libtinfo.so.6
文件mv $ENV_DIRECTORY/lib/libtinfo.so.6 $ENV_DIRECTORY/lib/libtinfo.so.6.bak
通过在
MultiDevice/config.yml
中设置 DUT 和 PN532 NFC 读取器的设备序列号来设置测试平台TestBeds: - Name: CtsNfcHceMultiDeviceTestCases-py-ctsv Controllers: AndroidDevice: - serial: "<device-id>" TestParams: pn532_serial_path: "<pn532-serial-path>"
运行 NFC 测试
要运行 NFC 测试,请执行以下操作
打开 CTS-V 应用,然后点按NFC 测试
图 2. CTS-V 应用。
此时会显示包含测试用例列表的信息窗口
图 3. CTS-V 应用测试用例。
在主机上运行测试
MultiDevice$ python3 tools/run_all_tests.py
测试完成后,测试结果会在 CTS-V 应用中更新。成功的测试呈绿色
图 4. CTS-V 测试结果。
如果您看到任何标记为红色的失败项,请使用以下命令重新运行失败的测试
python3 tools/run_all_tests.py --test_cases "`TestCaseA`" "`TestCaseB`" --test_files "`TestFileA`"
其中
TestCaseA
和TestCaseB
是测试用例的名称,如 CTS-V 中所示。TestFileA
是包含测试用例的测试文件。
例如
python3 tools/run_all_tests.py --test_cases "test_conflicting_non_payment" "test_conflicting_non_payment_prefix" --test_files "CtsNfcHceMultiDeviceTestCases-py-ctsv"