NFC-Tests mit mehreren Geräten ausführen (Android 15)

In diesem Dokument wird beschrieben, wie Sie NFC-Tests auf mehreren Geräten ausführen.

Voraussetzungen erfüllen

Bevor Sie NFC-Tests auf mehreren Geräten ausführen, gehen Sie so vor:

  1. Bereiten Sie ein Gerät mit Ihrer Android 15-Implementierung vor.
  2. Beachten Sie die CTS-V-Anforderungen.
  3. Folgen Sie der Einrichtung für CTS-V.

DUT und PN532-NFC-Lesegerät für den Test vorbereiten

Nachdem Sie die vorherigen Schritte abgeschlossen haben, führen Sie die folgenden Schritte aus, um ein DUT und ein PN532-NFC-Lesegerät für den Test vorzubereiten:

  1. Verbinden Sie das zu testende Gerät über USB mit einem Hostcomputer.
  2. Gewähren Sie dem Host Berechtigungen für den Zugriff auf das DUT über ADB.
  3. Installieren Sie die CTS Verifier App (CtsVerifier.apk) auf dem zu testenden Gerät:

    extract root/out/host/linux-x86/cts-verifier/android-cts-verifier.zip
    
    cd android-cts-verifier
    
    adb install -r -g CtsVerifier.apk
    
  4. Installieren Sie die für den NFC-Test erforderlichen APKs:

    cd MultiDevice
    
    adb install -r -g NfcEmulatorTestApp.apk
    

NFC für das zu testende Gerät einrichten

So richten Sie NFC für das zu testende Gerät ein:

  1. Öffnen Sie auf dem zu testenden Gerät die Einstellungen.
  2. Suchen Sie nach dem Abschnitt NFC oder Verbundene Geräte.
  3. Achten Sie darauf, dass der NFC-Schalter aktiviert ist.
  4. Positionieren Sie einen NFC-Chip am NFC-Lesegerät des Smartphones:

    1. Besorgen Sie sich einen PN532-NFC-Chip. Wir empfehlen die All-In-One-Option PN532 ohne BLE.
    2. Schließen Sie den PN532-NFC-Chip über ein USB-Kabel an den Linux-Host an.
    3. Halten Sie den PN532-NFC-Chip über das NFC-Lesegerät des Smartphones, wie im folgenden Bild gezeigt:

    Position des NFC-Chips

    Abbildung 1: Position des NFC-Chips.

Testumgebung einrichten

So richten Sie die Testumgebung ein:

  1. Führen Sie diese Befehle aus, um die Testumgebung einzurichten:

    cd MultiDevice
    
    source build/envsetup.sh
    

    Mit diesem Befehl wird die Python-Version geprüft und die Umgebungsvariable PYTHONPATH eingerichtet. Wenn keine Fehler im Terminal ausgegeben werden, ist die Umgebung bereit für die Ausführung der Tests auf mehreren Geräten.

    Wenn zur Laufzeit die Fehlermeldung libtinfo.so.6: no version information available (required by /bin/sh) angezeigt wird, führen Sie den folgenden Befehl aus, um die Datei libtinfo.so.6 umzubenennen:

    mv $ENV_DIRECTORY/lib/libtinfo.so.6 $ENV_DIRECTORY/lib/libtinfo.so.6.bak
    
  2. Richten Sie das Testfeld ein, indem Sie die Geräte-Seriennummern des DUT und des PN532-NFC-Lesegeräts in MultiDevice/config.yml festlegen:

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

NFC-Tests ausführen

So führen Sie die NFC-Tests aus:

  1. Öffnen Sie die CTS-V App und tippen Sie auf NFC Tests (NFC-Tests):

    Die CTS-V App

    Abbildung 2: Die CTS-V App.

    Das Infofenster mit der Liste der Testläufe wird angezeigt:

    CTS-V-App-Testläufe

    Abbildung 3: CTS-V-App-Testläufe

  2. Führen Sie die Tests auf Ihrem Host aus:

    MultiDevice$ python3 tools/run_all_tests.py
    

    Nach Abschluss der Tests werden die Testergebnisse in der CTS-V-App aktualisiert. Erfolgreiche Tests werden grün dargestellt:

    CTS-V-Testergebnisse

    Abbildung 4: Ergebnisse des CTS-V-Tests.

  3. Wenn Fehler rot markiert sind, führen Sie den folgenden Befehl aus, um die fehlgeschlagenen Tests noch einmal auszuführen:

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

    Dabei gilt:

    • TestCaseA und TestCaseB sind die Namen der Testläufe, wie sie im CTS-V angezeigt werden.
    • TestFileA ist die Testdatei, die die Testläufe enthält.

    Beispiel:

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