NFC-Tests für mehrere Geräte ausführen

In diesem Dokument wird erläutert, wie NFC-Tests für mehrere Geräte durchgeführt werden.

Voraussetzungen erfüllen

Führen Sie die folgenden Schritte aus, bevor Sie NFC-Tests mit mehreren Geräten ausführen:

  1. Bereiten Sie ein Gerät mit Ihrer Android 15-Implementierung vor.
  2. Beachten Sie die CTS-V-Anforderungen.
  3. Folgen Sie der Einrichtungsanleitung 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 einen DUT und ein PN532-NFC-Lesegerät für den Test vorzubereiten:

  1. Verbinden Sie das DUT über USB mit einem Hostcomputer.
  2. Gewähren Sie dem Host die Berechtigung, über ADB auf die DUT zuzugreifen.
  3. Installieren Sie die CTS Verifier App (CtsVerifier.apk) auf dem DUT:

    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 DUT einrichten

Führen Sie die folgenden Schritte aus, um NFC für den DUT einzurichten:

  1. Rufen Sie auf dem DUT das Menü Einstellungen auf.
  2. Suchen Sie nach dem Abschnitt NFC oder Verbundene Geräte.
  3. Achten Sie darauf, dass die NFC-Ein/Aus-Schaltfläche aktiviert ist.
  4. Platzieren Sie einen NFC-Chip auf dem NFC-Lesegerät des Smartphones:

    1. Besorgen Sie sich einen PN532-NFC-Chip. Wir empfehlen die All-in-One PN532 ohne BLE.
    2. Schließen Sie den PN532-NFC-Chip über ein USB-Kabel an den Linux-Host an.
    3. Platzieren Sie den PN532-NFC-Chip wie in der Abbildung unten über dem NFC-Lesegerät des Smartphones.

    Platzierung des NFC-Chips

    Abbildung 1. Platzierung des NFC-Chips

Testumgebung einrichten

So richten Sie die Testumgebung ein:

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

    cd MultiDevice
    
    source build/envsetup.sh
    

    Mit diesem Befehl wird Python geprüft und die Umgebungsvariable PYTHONPATH eingerichtet. Wenn keine Fehler im Terminal ausgegeben werden, ist die Umgebung bereit, die Tests für mehrere Geräte auszuführen.

    Wenn während der 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äteseriennummern 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:

    Die CTS-V-App

    Abbildung 2. Die CTS-V-App

    Das Infofenster mit der Liste der Testfälle wird angezeigt:

    Die CTS-V-App-Testfälle

    Abbildung 3 CTS-V-App-Testfälle

  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 sind grün:

    Die CTS-V-Testergebnisse

    Abbildung 4: CTS-V-Testergebnisse.

  3. Wenn Fehler rot markiert sind, verwenden Sie den folgenden Befehl, 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 Testfälle, wie sie in 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"