Exécuter des tests NFC multi-appareils (Android 15)

Ce document explique comment exécuter des tests NFC sur plusieurs appareils.

Prérequis

Avant d'exécuter des tests NFC sur plusieurs appareils, procédez comme suit :

  1. Préparez un appareil avec votre implémentation Android 15.
  2. Respectez les exigences CTS-V.
  3. Suivez la configuration CTS-V.

Préparer un appareil sous test et un lecteur NFC PN532 pour le test

Une fois les étapes précédentes effectuées, procédez comme suit pour préparer un appareil sous test et un lecteur NFC PN532 pour le test :

  1. Connectez l'appareil sous test à une machine hôte via USB.
  2. Accordez à l'hôte l'autorisation d'accéder à l'appareil sous test via ADB.
  3. Installez l'application CTS Verifier (CtsVerifier.apk) sur l'appareil sous test :

    extract root/out/host/linux-x86/cts-verifier/android-cts-verifier.zip
    
    cd android-cts-verifier
    
    adb install -r -g CtsVerifier.apk
    
  4. Installez les APK requis pour le test NFC :

    cd MultiDevice
    
    adb install -r -g NfcEmulatorTestApp.apk
    

Configurer la fonctionnalité NFC pour l'appareil sous test

Pour configurer la fonctionnalité NFC pour l'appareil sous test :

  1. Sur l'appareil sous test, accédez au menu Paramètres.
  2. Recherchez la section NFC ou Appareils connectés.
  3. Vérifiez que le bouton d'activation/de désactivation de la fonctionnalité NFC est activé.
  4. Placez une puce NFC sur le lecteur NFC du téléphone :

    1. Procurez-vous une puce NFC PN532. Nous vous recommandons l'option tout-en-un PN532, non BLE.
    2. Connectez la puce NFC PN532 à l'hôte Linux à l'aide d'un câble USB.
    3. Placez la puce NFC PN532 sur le lecteur NFC du téléphone, comme illustré dans l'image suivante :

    Emplacement de la puce NFC

    Figure 1. Placement de la puce NFC.

Configurer l'environnement de test

Pour configurer l'environnement de test :

  1. Exécutez les commandes suivantes pour configurer l'environnement de test :

    cd MultiDevice
    
    source build/envsetup.sh
    

    Cette commande vérifie Python et configure la variable d'environnement PYTHONPATH. Si aucune erreur n'est affichée dans le terminal, l'environnement est prêt à exécuter les tests sur plusieurs appareils.

    Si le message d'erreur libtinfo.so.6: no version information available (required by /bin/sh) s'affiche lors de l'exécution, exécutez la commande suivante pour renommer le fichier libtinfo.so.6 :

    mv $ENV_DIRECTORY/lib/libtinfo.so.6 $ENV_DIRECTORY/lib/libtinfo.so.6.bak
    
  2. Configurez le banc d'essai en définissant les ID de série de l'appareil sous test et du lecteur NFC PN532 dans MultiDevice/config.yml :

    TestBeds:
      - Name: CtsNfcHceMultiDeviceTestCases-py-ctsv
        Controllers:
          AndroidDevice:
            - serial: "<device-id>"
        TestParams:
          pn532_serial_path: "<pn532-serial-path>"
    

Exécuter les tests NFC

Pour exécuter les tests NFC :

  1. Ouvrez l'application CTS-V et appuyez sur NFC Tests (Tests NFC) :

    L&#39;application CTS-V

    Figure 2. L'application CTS-V.

    La fenêtre d'informations contenant la liste des scénarios de test s'affiche :

    Scénarios de test de l&#39;application CTS-V

    Figure 3. Scénarios de test de l'application CTS-V.

  2. Exécutez les tests sur votre hôte :

    MultiDevice$ python3 tools/run_all_tests.py
    

    Une fois les tests terminés, les résultats sont mis à jour dans l'application CTS-V. Les tests réussis sont en vert :

    Résultats du test CTS-V

    Figure 4. Résultats des tests CTS-V.

  3. Si des échecs sont signalés en rouge, utilisez la commande suivante pour exécuter à nouveau les tests ayant échoué :

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

    Où :

    • TestCaseA et TestCaseB correspondent aux noms des scénarios de test tels qu'ils apparaissent dans CTS-V.
    • TestFileA correspond au fichier de test contenant les scénarios de test.

    Exemple :

    python3 tools/run_all_tests.py --test_cases "test_conflicting_non_payment" "test_conflicting_non_payment_prefix" --test_files "CtsNfcHceMultiDeviceTestCases-py-ctsv"