本文件說明如何執行多裝置 NFC 測試。
符合先決條件
執行多裝置 NFC 測試之前,請先執行下列操作:
準備測試用的 DUT 和 PN532 NFC 讀取器
完成前述步驟後,請按照下列步驟準備測試的 DUT 和 PN532 NFC 讀取器:
- 透過 USB 將 DUT 連接至主機。
- 授予主機透過 ADB 存取 DUT 的權限。
在測試裝置上安裝 CTS Verifier 應用程式 (
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 晶片。建議使用非 BLE 的All-In-One PN532。
- 使用 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 讀卡器的裝置序號 ID,藉此設定測試平台: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"