Vollständige Automobiltests in einer Box

Complete Automotive Tests in a Box (CATBox) ist ein Open-Source-Paket, das die Frameworks und Tools bereitstellt, die zum Optimieren und Ausführen von Automotive-Tests mit minimaler Konfiguration erforderlich sind. CATBox ist skalierbar und kompatibel mit den Tools, der Infrastruktur und den Tests, die Sie zum Testen und Validieren Ihrer Android Automotive OS (AAOS)-Implementierungen verwenden. Dadurch können Sie dem Markt qualitativ hochwertige Produkte anbieten.

CATBox-Design und Implementierung

Die CATBox-Testsuite bietet die Tools, Frameworks und Tests, die zum Ausführen von Funktions- und Leistungstests auf einem Automotive-Zielgerät erforderlich sind.

Das folgende Bild zeigt ein High-Level-Design eines CATBox-Pakets.

CATBox

Abbildung 1. CATBox-Paket

Tradefed

Tradefed ist ein Open-Source-Framework für kontinuierliche Tests, das zur Durchführung von Tests auf Android-Geräten verwendet wird. Einzelheiten finden Sie unter Übersicht über die Handelsföderation .

Automotive-Testrahmen

CATBox basiert auf einem Automotive-Test-Framework namens Spectatio, das APIs zum Testen verschiedener Anwendungen auf Automotive-Geräten bereitstellt. Es basiert auf UI Automator , einem Open-Source-Testframework, das eine Reihe von APIs zum Erstellen von UI-Tests bereitstellt, die mit Benutzer- und Systemanwendungen interagieren.

Downloads der CATBox-Testsuite

Android 12

Android 12 ist die Veröffentlichung des Entwicklungsmeilensteins mit dem Codenamen S. Verwenden Sie die folgenden Links, um CATBox-Testsuiten für Android 12 herunterzuladen:

Android 11

Android 11 ist die Veröffentlichung des Entwicklungsmeilensteins mit dem Codenamen R. Verwenden Sie die folgenden Links, um CATBox-Testsuiten für Android 11 herunterzuladen:

CATBox erstellen

Verwenden Sie den Befehl catbox build, sobald der Android-AOSP-Code auf der lokalen Workstation verfügbar ist. So erstellen Sie das CATBox-Paket lokal:

  1. Wählen Sie Geräteziel aus und führen Sie den folgenden Befehl aus:

    # Select Device Target Based on Device Architecture
    $ lunch <target>
    
  2. Führen Sie zum Erstellen von CATBox den folgenden Befehl aus:

    # Build CATBox
    $ make catbox
    

    Dieser Befehl erstellt die Datei android-catbox.zip im Verzeichnis /out/host/linux-x86/catbox , die dann zum Ausführen von Tests verwendet werden kann.

Umgebungseinrichtung

Die zur Ausführung von CATBox-Tests erforderliche Umgebungseinrichtung ähnelt der Einrichtung von CTS . Um die Umgebung einzurichten, führen Sie jede der folgenden Aufgaben aus:

CATBox-Einrichtung und -Ausführung

Verwenden Sie das Tradefed-Testframework, um die Tests auf Android-Geräten auszuführen. Machen Sie sich vor der Einrichtung von CATBox mit der Übersicht über die Handelsföderation vertraut.

Informationen zum Einrichten und Ausführen von CATBox finden Sie in den folgenden Abschnitten.

Geräte-Setup

Bevor Sie einen Testplan ausführen, führen Sie die folgenden Schritte aus, um Ihr Gerät einzurichten:

  1. Stellen Sie sicher, dass Sie die neuesten Versionen von Android Debug Bridge (adb) und Android Asset Packaging Tool (AAPT) installiert und den Speicherort dieser Tools zum Systempfad Ihres Computers hinzugefügt haben. Einzelheiten finden Sie unter ADB und AAPT .

  2. Schließen Sie mindestens ein Gerät an und bereiten Sie das zu testende Gerät (DUT) wie folgt vor:

    1. Um das Kfz-Gerät auf die Werkseinstellungen zurückzusetzen, klicken Sie auf Einstellungen > System > Reset-Optionen > Alle Daten löschen .
    2. Warten Sie, bis das Gerät automatisch neu startet.
    3. Stellen Sie sicher, dass adb aktiviert ist. Um zu bestätigen, dass das Gerät verfügbar ist, führen Sie den folgenden Befehl aus:

      $ adb devices
      
    4. Um Root zu aktivieren, führen Sie den folgenden Befehl aus:

      # Enable Root
      $ adb -s DEVICE_SERIAL root
      

      Ersetzen Sie DEVICE_SERIAL durch die Seriennummer des Kfz-Geräts.

    5. Stellen Sie eine WLAN-Verbindung her.

Extrahieren Sie das CATBox-Paket

Entpacken Sie nach Abschluss der Geräteeinrichtung das CATBox-Paket und wechseln Sie in den extrahierten Ordner:

# Extract the CATBox Package
$ unzip android-catbox.zip

# Navigate to extracted CATBox Package
$ cd android-catbox

Führen Sie Tests in der CATBox aus

Um CATBox mit den Testplänen im CATBox-Paket auszuführen, führen Sie Folgendes aus:

./tools/catbox-tradefed run commandAndExit TEST_PLAN_NAME --serial DEVICE_SERIAL

Ersetzen Sie DEVICE_SERIAL durch die Seriennummer des Kfz-Geräts. Wenn Sie mehrere Geräte an den Host-Computer angeschlossen haben, verwenden Sie DEVICE_SERIAL um sie zu unterscheiden. Ersetzen Sie TEST_PLAN_NAME durch den Namen des Testplans, den Sie ausführen möchten.

Um eine vollständige Liste der verfügbaren Testpläne zu erhalten, führen Sie Folgendes aus:

./tools/catbox-tradefed list plans | grep -i catbox

In der folgenden Tabelle werden die verfügbaren Testpläne nach Typ angezeigt:

Testtyp Name
Funktionstestpläne catbox-functional-notification
catbox-functional-setting
catbox-functional-dial
catbox-functional-system-setting
catbox-functional-app-info-setting
catbox-functional-network-setting
catbox-functional-security-setting
catbox-functional-sound-setting
catbox-functional-date-time-setting
catbox-functional-appgrid
catbox-functional-home
catbox-functional-lock-screen
catbox-functional-navigation-bar
catbox-functional-ux-restriction
catbox-functional-bluetooth-audio
Leistungstestpläne catbox-performance-cold-app-start-up-settings
catbox-performance-hot-app-start-up-settings
catbox-performance-jank-settings
catbox-performance-cold-app-start-up-dialer
catbox-performance-hot-app-start-up-dialer
catbox-performance-jank-contact-list
catbox-performance-jank-notifications
catbox-performance-jank-appgrid
catbox-performance-cold-app-start-up-mediacenter
catbox-performance-hot-app-start-up-mediacenter
catbox-performance-create-and-switch-to-new-guest
catbox-performance-create-and-switch-to-new-user
catbox-performance-create-and-switch-to-precreated-guest
catbox-performance-create-and-switch-to-precreated-user
catbox-performance-switch-to-existing-user

CATBox-Testergebnisse

Testergebnisse werden sowohl für die Ausführung von Funktions- als auch Leistungstests im Ordner android-catbox/results/latest gespeichert.

  • Testergebnisse finden Sie unter test_result.xml .
  • Einzelheiten zu Fehlertests finden Sie unter test_result_failures_suite.html .
  • Ergebnisse zu Leistungsmetriken finden Sie unter CatboxPerformanceTests.reportlog.json im Verzeichnis report-log-files .

Protokolle werden sowohl für Funktions- als auch für Leistungstestausführungen im Pfad android-catbox/logs/latest gespeichert.

Einige Tests wie Wähl-, Bluetooth-Audio- und Kontaktlisten-Jank-Tests erfordern eine zusätzliche Geräteeinrichtung.

Wähltest

Für den Wähltest sind Geräte-Setup- und Laufzeitparameter erforderlich. So richten Sie das Gerät ein:

  1. Verbinden Sie das Mobilgerät über Bluetooth mit der Automotive-Headunit.
  2. Stellen Sie sicher, dass das Testtelefon eine SIM-Karte zur Durchführung von Wähltests enthält und mit dem Mobilfunknetz verbunden ist.
  3. Bei Wähltests werden auf dem Telefon gespeicherte Standardkontakte verwendet. Verwenden Sie die Datei „contacts.vcf“ , um Kontakte auf das Telefon zu laden.
  4. Ersetzen Sie COMPANION_SERIAL durch die Seriennummer des Telefons und führen Sie die folgenden Befehle aus:

    # Contacts can be loaded on the phone by pushing the contacts.vcf file on
    the phone and importing it in the Contacts application.
    
    OR
    
    # Importing contacts using adb.
    
    # Push contacts VCF file to phone
    
    $ adb -s COMPANION_SERIAL push <path-to-downloaded-contacts-vcf-file> /storage/emulated/0/Android/data/com.google.android.contacts/contacts.vcf
    
    # Grant Read Permissions
    
    $ adb -s COMPANION_SERIAL shell pm grant com.google.android.contacts
    android.permission.READ_EXTERNAL_STORAGE
    
    # Import contacts from the VCF file
    
    $ adb -s COMPANION_SERIAL shell am start-activity -W -t 'text/x-vcard' -d file:///storage/emulated/0/Android/data/com.google.android.contacts/contacts.vcf
    -a android.intent.action.VIEW com.google.android.contacts
    
    # Then accept the prompts on the UI to load the contacts.
    
Laufzeitparameter

Bei Wähltests werden zur Testdurchführung kleine und große Telefonnummern verwendet. Bei Wähltests werden der Kontaktname und die Kontaktnummer auch für Suchtests verwendet. Verwenden Sie die folgenden Parameter, um diese Informationen bereitzustellen:

Parameters for Large Phone Number:
--module-arg AndroidAutomotiveDialTests:instrumentation-arg:large-phone-number:=< 10 digit phone number>

Parameters for Small Phone Number:
--module-arg AndroidAutomotiveDialTests:instrumentation-arg:small-phone-number:=< 3 digit phone number>

Parameters for Search Contact Name:
--module-arg AndroidAutomotiveDialTests:instrumentation-arg:search-contact-name:=< some contact name stored on the phone >

Parameters for Search Contact Number:
--module-arg AndroidAutomotiveDialTests:instrumentation-arg:search-contact-number:=< contact number of the name provided in the search contact name >

Bluetooth-Audiotest

So richten Sie ein Gerät für den Bluetooth-Audiotest ein:

  1. Stellen Sie sicher, dass die YouTube Music-App auf dem Telefon installiert ist und Sie bei einem Konto angemeldet sind. Wenn nicht, installieren Sie die App und melden Sie sich bei einem Konto an.
  2. Koppeln Sie das Telefon manuell über Bluetooth mit dem Fahrzeuggerät.
  3. Sobald das Telefon gekoppelt ist, spielen Sie ein Lied auf dem Telefon ab und beginnen Sie dann mit der Ausführung des Tests.

Jank-Test für die Kontaktliste

So richten Sie ein Gerät für den Kontaktlisten-Jack-Test ein:

  1. Stellen Sie sicher, dass das Telefon über mehrere Kontakte verfügt, damit der Test durch die Kontaktliste scrollen kann, um Jank-Metriken zu erfassen.
  2. Koppeln Sie das Telefon manuell über Bluetooth mit dem Fahrzeuggerät.
  3. Sobald das Telefon gekoppelt ist, kann auf die Kontakte auf dem Gerät zugegriffen werden.