Vollständige Autotests in der Verpackung

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

CATBox-Design und ‑Implementierung

Die CATBox-Testsuite bietet die Tools, Frameworks und Tests, die erforderlich sind, um Funktions- und Leistungstests auf einem Automotive-Zielgerät und mit einem Begleitgerät auszuführen.

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 bietet. 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.

CATBox-Testsuite herunterladen

Android 14

Android Automotive 14 ist die Veröffentlichung des Entwicklungsmeilensteins mit dem Codenamen U. Über die folgenden Links können Sie CATBox-Testsuiten für Android 14 herunterladen:

Android 12

Android 12 ist das Release des Entwicklungsmeilensteins mit dem Codenamen S. Verwenden Sie die folgenden Links, um CATBox-Testsuites 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 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 den folgenden Befehl aus, um CATBox zu erstellen:

    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 für die Ausführung von CATBox-Tests erforderliche Einrichtung der Umgebung ähnelt der Einrichtung von CTS. Führen Sie die folgenden Aufgaben aus, um die Umgebung einzurichten:

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 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. Achten Sie darauf, dass Sie die aktuellen Versionen der Android Debug Bridge (adb) und des Android Asset Packaging Tool (AAPT) installiert und den Speicherort dieser Tools dem Systempfad Ihres Computers hinzugefügt haben. Weitere Informationen finden Sie unter ADB und AAPT.

  2. Verbinden Sie mindestens ein Gerät und bereiten Sie das zu testende Gerät (Device Under Test, DUT) so vor:

    1. Wenn Sie das Automotive-Gerä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-Zugriff zu aktivieren:

      adb -s DEVICE_SERIAL root

      Ersetzen Sie DEVICE_SERIAL durch die Serien-ID des Automotive-Geräts.

    5. Stellen Sie eine Verbindung zum WLAN her.

CATBox-Paket extrahieren

Nachdem Sie das Gerät eingerichtet haben, entpacken Sie 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 Serien-ID des Automotive-Geräts. Wenn mehrere Geräte mit dem Hostcomputer verbunden sind, verwenden Sie DEVICE_SERIAL, um sie 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.

Funktionale Testpläne Beschreibung
catbox-functional Funktionstests
catbox-functional-app-info-setting Funktionstests für die Einstellung für App-Informationen.
catbox-functional-admin-user-grant-permissions Funktionstests für das Gewähren von Berechtigungen für Administratornutzer.
catbox-functional-app-info-setting-ui-elements Funktionstests für die Einstellung für App-Informationen.
catbox-functional-appgrid Funktionstests für das 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 Funktionstests auf Basis von Bluetooth-Mopeds.
catbox-functional-date-time-setting Funktionstests für die Datums- und Uhrzeiteinstellung.
catbox-functional-dial Funktionstests für die Wählfunktion
catbox-functional-display-setting Funktionstests für Displayeinstellungen.
catbox-functional-driving-optimized-apps Funktionstests für UX-Einschränkungen.
catbox-functional-enable-developers-option Funktionstests für Entwickleroptionen aktivieren.
catbox-functional-home Funktionstests für das Zuhause
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 für die Navigationsleiste.
catbox-functional-network-palette Funktionstests der Statusleiste.
catbox-functional-network-setting Funktionstests der 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 Profilsymbolleiste.
catbox-functional-profiles-icon-list Tests für die Liste der Profilsymbole.
catbox-functional-security-setting Funktionstests für Sicherheitseinstellungen.
catbox-functional-setting Funktionstests einrichten.
catbox-functional-settings-location Standorttests einrichten
catbox-functional-sound-setting Funktionstests der Soundeinstellungen.
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 Leistungs-Testpläne für CATBox aufgeführt.

Leistungstestpläne Beschreibung
catbox-performance-cold-app-start-up-dialer Leistungstest für den Kaltstart von Dialer und 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 von Apps für 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 Latenz beim Wechsel zu einem neuen Nutzer ohne Administratorberechtigungen messen
catbox-performance-hot-app-start-up-dialer Leistungstest für den Kaltstart von Dialer und Phone.
catbox-performance-hot-app-start-up-mediacenter Leistungstest für den Kaltstart von Apps für Media Center.
catbox-performance-hot-app-start-up-settings Leistungstest für den Kaltstart von 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 Media
catbox-performance-jank-media-switch-playback Leistungstest für die Wiedergabe bei Medienwechsel.
catbox-performance-jank-notifications Leistungstest für Benachrichtigungen.
catbox-performance-jank-settings Leistungstest für Einstellungen
catbox-performance-switch-to-existing-user Latenz beim Wechsel zu einem vorhandenen Nutzer messen.

Multidevice-Hostseitentest ausführen

Für die Ausführung von hostseitigen Tests für mehrere 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 apk und der Test wird dann in der richtigen Python-Ausführungsumgebung ausgeführt.

CATBox-Testergebnisse ansehen

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

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