이 문서에서는 멀티 기기 NFC 테스트를 실행하는 방법을 설명합니다.
기본 요건 충족
멀티 디바이스 NFC 테스트를 실행하기 전에 다음을 실행합니다.
테스트를 위해 DUT 및 PN532 NFC 리더 준비
이전 단계를 완료한 후 다음 단계에 따라 테스트를 실행하고 DUT 및 PN532 NFC 리더를 준비합니다.
- DUT를 USB를 통해 호스트 머신에 연결합니다.
- 호스트에서 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 칩을 획득합니다. 올인원 PN532, non-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 리더의 기기 일련번호 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"