Vollständige Autotests in der Verpackung

Complete Automotive Tests in a Box (CATBox) ist ein Open-Source-Paket, das die Frameworks und Tools zur Optimierung und Ausführung von Tests für die Automobilbranche mit minimaler Konfiguration bereitstellt. CATBox ist skalierbar und kompatibel mit den Tools, der Infrastruktur und den Tests, die Sie zum Testen und Validieren Ihrer AAOS-Implementierungen (Android Automotive OS) verwenden. So können Sie dem Marktplatz hochwertige Produkte anbieten.

CATBox-Design und -Implementierung

Die CATBox-Testsuite bietet die Tools, Frameworks und Tests, die für die Durchführung von Funktions- und Leistungstests auf einem Zielgerät aus der Automobilbranche und unter Verwendung eines Companion-Geräts erforderlich sind.

Das folgende Bild zeigt ein allgemeines Design eines CATBox-Pakets.

CATBox

Abbildung 1. CATBox-Paket

Tradefed

Tradefed ist ein Open-Source-Framework für kontinuierliche Tests, mit dem Tests auf Android-Geräten ausgeführt werden. Weitere Informationen finden Sie unter Trade Federation – Übersicht.

Testframework für die Automobilbranche

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

Downloads der CATBox-Testsuite

Android 14

Android Automotive 14 ist die Version des Entwicklungsmeilensteins mit dem Codenamen „U“. Über die folgenden Links können Sie CATBox-Testsuites für Android 14 herunterladen:

Android 12

Android 12 ist die Version des Entwicklungsmeilensteins mit dem Codenamen „S“. Über die folgenden Links können Sie CATBox-Testsuites für Android 12 herunterladen:

Android 11

Android 11 ist die Version des Entwicklungsmeilensteins mit dem Codenamen „R“. Über die folgenden Links können Sie CATBox-Testsuites für Android 11 herunterladen:

CATBox erstellen

Verwenden Sie den Build-Befehl catbox, 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
    

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

Umgebung einrichten

Die Einrichtung der Umgebung, die zum Ausführen von CATBox-Tests erforderlich ist, ähnelt der Einrichtung der CTS. Führen Sie die folgenden Aufgaben aus, um die Umgebung einzurichten:

CATBox einrichten und ausführen

Verwenden Sie das Tradefed-Test-Framework, um die Tests auf Android-Geräten auszuführen. Lesen Sie vor der Einrichtung von CATBox die Trade Federation-Übersicht.

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

Gerät einrichten

Bevor Sie einen Testplan ausführen, müssen Sie Ihr Gerät so einrichten:

  1. Sie müssen die neuesten Versionen von Android Debug Bridge (adb) und Android Asset Packaging Tool (AAPT) installiert haben und den Speicherort dieser Tools dem Systempfad Ihres Computers hinzugefügt haben. Weitere Informationen finden Sie unter ADB und AAPT.

  2. Schließen Sie mindestens ein Gerät an und bereiten Sie das Testgerät (Device Under Test, DUT) so vor:

    1. Wenn Sie das Autogerät auf die Werkseinstellungen zurücksetzen möchten, gehen Sie zu Einstellungen > System > Optionen zum Zurücksetzen > Alle Daten löschen.

    2. Warten Sie, bis das Gerät automatisch neu gestartet wird.

    3. Prüfen Sie, ob ADB aktiviert ist. Führen Sie den folgenden Befehl aus, um zu prüfen, ob das Gerät verfügbar ist:

      adb devices
      
    4. Führen Sie den folgenden Befehl aus, um den Root-Benutzer zu aktivieren:

      adb -s DEVICE_SERIAL root
      

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

    5. Stellen Sie eine Verbindung zum WLAN her.

CATBox-Paket extrahieren

Entpacken Sie nach der Einrichtung des Geräts das CATBox-Paket und rufen Sie den extrahierten Ordner auf:

unzip android-catbox.zip
cd android-catbox

Tests in CATBox ausführen

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 Auto-Geräts. Wenn mehrere Geräte mit dem Hostcomputer verbunden sind, verwenden Sie DEVICE_SERIAL, um sie voneinander zu unterscheiden. Ersetzen Sie TEST_PLAN_NAME durch den Namen des Testplans, den Sie ausführen möchten.

Die vollständigste Liste der verfügbaren Tarife erhalten Sie über die Befehlszeile:

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

Arten von Testplänen

In der folgenden Tabelle sind die verfügbaren funktionalen Testpläne aufgeführt.

Funktionstestpläne Beschreibung
catbox-functional Funktionstests
catbox-functional-app-info-setting Funktionstests für die Einstellung „App-Informationen“
catbox-functional-admin-user-grant-permissions Funktionstests für die Berechtigungsverwaltung durch Administratoren
catbox-functional-app-info-setting-ui-elements Funktionstests für die Einstellung „App-Informationen“
catbox-functional-appgrid Funktionstests für App-Raster
catbox-functional-base Liste der Funktionstests.
catbox-functional-bluetooth-audio Funktionstests für Bluetooth-Audio
catbox-functional-bluetooth-palette Funktionstests der Statusleiste
catbox-functional-bluetooth-tests Bluetooth-Tests mit Mobly
catbox-functional-brightness-palette Funktionstests der Statusleiste
catbox-functional-btmoped Bluetooth-Moped-basierte Funktionstests
catbox-functional-date-time-setting Funktionstests für Datums- und Uhrzeiteinstellungen
catbox-functional-dial Funktionstests für die Anruffunktion
catbox-functional-display-setting Funktionstests für Displayeinstellungen
catbox-functional-driving-optimized-apps Funktionstests für UX-Einschränkungen
catbox-functional-enable-developers-option Aktivieren Sie die Funktionstests für die Entwickleroptionen.
catbox-functional-home Funktionstests für Smart Home
catbox-functional-lock-screen Funktionstests für den Sperrbildschirm
catbox-functional-mediacenter Funktionstests für Media Center
catbox-functional-microphone-recent-apps Funktionstests der Mikrofoneinstellungen
catbox-functional-microphone-setting Funktionstests der Mikrofoneinstellungen
catbox-functional-multiuser Funktionstests für mehrere Nutzer
catbox-functional-multiuser-system-user Funktionstests für mehrere Nutzer
catbox-functional-navigation-bar Funktionstests der Navigationsleiste
catbox-functional-network-palette Funktionstests der Statusleiste
catbox-functional-network-setting Funktionstests für Netzwerkeinstellungen
catbox-functional-notification Funktionstests für Benachrichtigungen
catbox-functional-privacy-permission-manager Funktionstests für Datenschutzeinstellungen für App-Berechtigungen
catbox-functional-privacy-setting Funktionstests der Mikrofoneinstellungen
catbox-functional-privacy-setting-ui-elements Funktionstests für Datenschutzeinstellungen
catbox-functional-profile-icon Funktionstests für die Symbolleiste des Profils
catbox-functional-profiles-icon-list Liste der Tests für das Profilsymbol
catbox-functional-security-setting Funktionstests für Sicherheitseinstellungen
catbox-functional-setting Funktionstests einrichten
catbox-functional-settings-location Standorttests einrichten
catbox-functional-sound-setting Funktionstests für die Toneinstellungen
catbox-functional-status-bar Funktionstests der Statusleiste
catbox-functional-storage-setting Funktionstests für Speichereinstellungen
catbox-functional-system-setting Funktionstests für Systemeinstellungen
catbox-functional-systemui Tests der System-UI.
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 CATBox-Leistungstestpläne aufgeführt.

Leistungstestpläne Beschreibung
catbox-performance-cold-app-start-up-dialer Leistungstest für den Kaltstart von Apps für den Anrufer und das Telefon
catbox-performance-cold-app-start-up-mediacenter Leistungstest für den Kaltstart von Apps für Media Center.
catbox-performance-cold-app-start-up-settings Leistungstest für den Kaltstart der App mit den Einstellungen
catbox-performance-create-and-switch-to-new-guest Latenz beim Wechsel zu einem neuen Gast messen
catbox-performance-create-and-switch-to-new-user Messen Sie die Latenz beim Wechsel zu einem neuen Nutzer ohne Administratorberechtigungen.
catbox-performance-hot-app-start-up-dialer Leistungstest für den Hot-App-Start von Telefon und Telefonie
catbox-performance-hot-app-start-up-mediacenter Leistungstest für den schnellen Start von Apps im Media Center.
catbox-performance-hot-app-start-up-settings Leistungstest für das schnelle Starten der App „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 Medienwiedergabe bei Umschalten
catbox-performance-jank-notifications Leistungstest für Benachrichtigungen.
catbox-performance-jank-settings Leistungstest für die Einstellungen.
catbox-performance-switch-to-existing-user Latenz für den Wechsel zu einem vorhandenen Nutzer messen

Hostseitigen Test für mehrere Geräte ausführen

Bei der Ausführung von hostseitigen Tests mit mehreren Geräten 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 führt den Test dann in der richtigen Python-Ausführungsumgebung aus.

CATBox-Testergebnisse prüfen

Die Ergebnisse von Funktions- und Leistungstests werden in android-catbox/results/latest gespeichert.

Ergebnistyp Standort
Testergebnisse test_result.xml
Details zu Fehlschlagstests test_result_failures_suite.html
Ergebnisse der Leistungsmesswerte /report-log-files/CatboxPerformanceTests.reportlog.json
Funktions- und Leistungstests /android-catbox/logs/latest