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 und bei Verwendung eines Begleitgeräts 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 Apps 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 14

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

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 das Geräteziel basierend auf der Gerätearchitektur aus und führen Sie den folgenden Befehl aus:

    lunch <target>
    
  2. Führen Sie zum Erstellen von CATBox den folgenden Befehl aus:

    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.

Richten Sie die Umgebung ein

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 einrichten und ausführen

Verwenden Sie das Tradefed-Testframework, um die Tests auf Android-Geräten auszuführen. Bevor Sie CATBox einrichten, lesen Sie die Übersicht über den Handelsverband .

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

Richten Sie das Gerät ein

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, gehen Sie zu Einstellungen > System > Optionen zurücksetzen > 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:

      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 dem Einrichten des Geräts das CATBox-Paket und gehen Sie in den extrahierten Ordner:

unzip android-catbox.zip
cd android-catbox

Führen Sie Tests in CATBox aus

So führen Sie CATBox mit den Testplänen im CATBox-Paket 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 die umfassendste Liste der verfügbaren Pläne zu erhalten, verwenden Sie die Befehlszeile:

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

Arten von Testplänen

Die folgende Tabelle zeigt die verfügbaren Funktionstestpläne .

Funktionstestpläne Beschreibung
catbox-functional Funktionstests.
catbox-functional-app-info-setting App-Info-Einstellungsfunktionstests.
catbox-functional-admin-user-grant-permissions Admin-Benutzer gewähren Berechtigungen für Funktionstests.
catbox-functional-app-info-setting-ui-elements App-Info-Einstellungsfunktionstests.
catbox-functional-appgrid Funktionstests des App-Grids.
catbox-functional-base Liste der Funktionstests.
catbox-functional-bluetooth-audio Bluetooth-Audio Funktionstests.
catbox-functional-bluetooth-palette Funktionstests in der Statusleiste.
catbox-functional-bluetooth-tests Bluetooth-Tests mit Mobly.
catbox-functional-brightness-palette Funktionstests in der Statusleiste.
catbox-functional-btmoped Bluetooth-Moped-basierte Funktionstests.
catbox-functional-date-time-setting Funktionstests zur Einstellung von Datum und Uhrzeit.
catbox-functional-dial Wählen Sie Funktionstests.
catbox-functional-display-setting Funktionstests zur Anzeigeeinstellung.
catbox-functional-driving-optimized-apps Funktionstests für UX-Einschränkungen.
catbox-functional-enable-developers-option Aktivieren Sie Funktionstests für Entwickleroptionen.
catbox-functional-home Funktionstests für zu Hause.
catbox-functional-lock-screen Funktionstests des Sperrbildschirms.
catbox-functional-mediacenter Funktionstests des Media Centers.
catbox-functional-microphone-recent-apps Funktionstests der Mikrofoneinstellung.
catbox-functional-microphone-setting Funktionstests der Mikrofoneinstellung.
catbox-functional-multiuser Mehrbenutzer-Funktionstests.
catbox-functional-multiuser-system-user Mehrbenutzer-Funktionstests.
catbox-functional-navigation-bar Funktionstests der Navigationsleiste.
catbox-functional-network-palette Funktionstests in der Statusleiste.
catbox-functional-network-setting Funktionstests für Netzwerkeinstellungen.
catbox-functional-notification Benachrichtigungsfunktionstests.
catbox-functional-privacy-permission-manager Funktionstests zur Einstellung der Datenschutz-App-Berechtigung.
catbox-functional-privacy-setting Funktionstests der Mikrofoneinstellung.
catbox-functional-privacy-setting-ui-elements Funktionstests zur Privatsphäre-Einstellung.
catbox-functional-profile-icon Funktionstests der Profilsymbolleiste.
catbox-functional-profiles-icon-list Tests der Profilsymbolliste.
catbox-functional-security-setting Funktionstests für Sicherheitseinstellungen.
catbox-functional-setting Funktionstests festlegen.
catbox-functional-settings-location Standorttests festlegen.
catbox-functional-sound-setting Funktionstests zur Klangeinstellung.
catbox-functional-status-bar Funktionstests in der Statusleiste.
catbox-functional-storage-setting Funktionstests der Speichereinstellungen.
catbox-functional-system-setting Funktionstests zur Systemeinstellung.
catbox-functional-systemui System-UI-Tests.
catbox-functional-ux-restriction Funktionstests für UX-Einschränkungen.
catbox-functional-ux-restriction-facet-bar Funktionstests für UX-Einschränkungen.

In der folgenden Tabelle sind die Leistungstestpläne für CATBox aufgeführt.

Leistungstestpläne Beschreibung
catbox-performance-cold-app-start-up-dialer Leistungstest beim Kaltstart von Apps für Dialer und Telefon.
catbox-performance-cold-app-start-up-mediacenter Leistungstest für den Kaltstart einer App für Media Center.
catbox-performance-cold-app-start-up-settings Leistungstest beim Kaltstart der App für Einstellungen.
catbox-performance-create-and-switch-to-new-guest Messen Sie die Latenz, um zu einem neuen Gast zu wechseln.
catbox-performance-create-and-switch-to-new-user Messen Sie die Latenz, um zu einem neuen Benutzer ohne Administratorrechte zu wechseln.
catbox-performance-hot-app-start-up-dialer Hot-App-Startleistungstest für Dialer und Telefon.
catbox-performance-hot-app-start-up-mediacenter Hot-App-Startleistungstest für Media Center.
catbox-performance-hot-app-start-up-settings Hot-App-Startleistungstest für Einstellungen.
catbox-performance-jank-appgrid Leistungstest für Appgrid.
catbox-performance-jank-contact-list Leistungstest für Kontakte.
catbox-performance-jank-media Leistungstests für Medien.
catbox-performance-jank-media-switch-playback Leistungstest für die Medienwechselwiedergabe.
catbox-performance-jank-notifications Leistungstest für Benachrichtigungen.
catbox-performance-jank-settings Leistungstest für Einstellungen.
catbox-performance-switch-to-existing-user Messen Sie die Latenz, um zu einem vorhandenen Benutzer zu wechseln.

Führen Sie den Host-Seitentest für mehrere Geräte aus

Bei der Ausführung von Tests auf der Hostseite mehrerer Geräte wird CATBox verwendet, um den Test in einer Sitzung auszuführen. Beispiel: BTDiscoveryTest :

make catbox
./tools/catbox-tradefed run commandAndExit catbox-functional-bluetooth-tests --{phone}serial <serial> --{auto}serial <serial> --mobly-host:mobly-par-file-name BTDiscoveryTest

CATBox installiert die apk und dann wird der Test in der richtigen Python-Ausführungsumgebung ausgeführt.

Überprüfen Sie die CATBox-Testergebnisse

Ergebnisse von Funktions- und Leistungstestläufen werden in android-catbox/results/latest gespeichert.

Ergebnistyp Standort
Testergebnisse test_result.xml
Details zu Fehlertests test_result_failures_suite.html
Ergebnisse der Leistungsmetriken /report-log-files/CatboxPerformanceTests.reportlog.json
Funktions- und Leistungstestläufe /android-catbox/logs/latest