멀티 기기 NFC 테스트 실행

이 문서에서는 멀티 기기 NFC 테스트를 실행하는 방법을 설명합니다.

기본 요건 충족

멀티 디바이스 NFC 테스트를 실행하기 전에 다음을 실행합니다.

  1. Android 15 구현을 사용하여 기기를 준비합니다.
  2. CTS-V 요구사항을 준수합니다.
  3. CTS-V 설정을 따릅니다.

테스트를 위해 DUT 및 PN532 NFC 리더 준비

이전 단계를 완료한 후 다음 단계에 따라 테스트를 실행하고 DUT 및 PN532 NFC 리더를 준비합니다.

  1. DUT를 USB를 통해 호스트 머신에 연결합니다.
  2. 호스트에서 ADB를 통해 DUT에 액세스하도록 권한을 부여합니다.
  3. 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
    
  4. NFC 테스트에 필요한 APK를 설치합니다.

    cd MultiDevice
    
    adb install -r -g NfcEmulatorTestApp.apk
    

DUT의 NFC 설정

DUT의 NFC 설정을 실행하려면 다음 단계를 따르세요.

  1. DUT에서 설정 메뉴로 이동합니다.
  2. NFC 또는 연결된 기기 섹션을 찾습니다.
  3. NFC 전환 스위치가 사용 설정되어 있는지 확인합니다.
  4. 휴대전화의 NFC 리더에 NFC 칩을 배치합니다.

    1. PN532 NFC 칩을 획득합니다. 올인원 PN532, non-BLE 옵션을 사용하는 것이 좋습니다.
    2. USB 케이블을 사용하여 PN532 NFC 칩을 Linux 호스트에 연결합니다.
    3. 다음 이미지와 같이 PN532 NFC 칩을 휴대전화의 NFC 리더 위에 놓습니다.

    NFC 칩 배치

    그림 1. NFC 칩 배치

테스트 환경 설정

테스트 환경을 설정하려면 다음 단계를 따르세요.

  1. 다음 명령어를 실행하여 테스트 환경을 설정합니다.

    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
    
  2. 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 테스트를 실행하려면 다음 단계를 따르세요.

  1. CTS-V 앱을 열고 NFC 테스트를 탭합니다.

    CTS-V 앱

    그림 2. CTS-V 앱

    테스트 사례 목록이 포함된 정보 창이 표시됩니다.

    CTS-V 앱 테스트 사례

    그림 3. CTS-V 앱 테스트 사례

  2. 호스트에서 테스트를 실행합니다.

    MultiDevice$ python3 tools/run_all_tests.py
    

    테스트가 완료되면 CTS-V 앱에서 테스트 결과가 업데이트됩니다. 테스트에 성공하면 녹색으로 표시됩니다.

    CTS-V 테스트 결과

    그림 4. CTS-V 테스트 결과

  3. 실패가 빨간색으로 표시되면 다음 명령어를 사용하여 실패한 테스트를 다시 실행합니다.

    python3 tools/run_all_tests.py --test_cases "`TestCaseA`" "`TestCaseB`" --test_files "`TestFileA`"
    

    각각의 의미는 다음과 같습니다.

    • TestCaseATestCaseB는 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"