Kompletne testy motoryzacyjne w pudełku

Complete Automotive Tests in a Box (CATBox) to pakiet typu open source, który zapewnia ramy i narzędzia wymagane do usprawnienia i wykonywania testów motoryzacyjnych przy minimalnej konfiguracji. CATBox jest skalowalny i kompatybilny z narzędziami, infrastrukturą i testami, których używasz do testowania i sprawdzania wdrożeń systemu Android Automotive OS (AAOS). Dzięki temu możesz dostarczać na rynek produkty wysokiej jakości.

Projekt i wdrożenie CATBox

Zestaw testów CATBox zapewnia narzędzia, frameworki i testy potrzebne do przeprowadzenia testów funkcjonalnych i wydajnościowych na docelowym urządzeniu motoryzacyjnym oraz podczas korzystania z urządzenia towarzyszącego.

Poniższy obraz ilustruje projekt wysokiego poziomu pakietu CATBox.

CATBox

Rysunek 1. Pakiet CATBox

Sprzedawane

Tradefed to platforma do ciągłego testowania o otwartym kodzie źródłowym, używana do wykonywania testów na urządzeniach z Androidem. Aby uzyskać szczegółowe informacje, zobacz Przegląd Federacji Handlowej .

Ramy testów motoryzacyjnych

CATBox opiera się na frameworku testów motoryzacyjnych o nazwie Spectatio , który zapewnia interfejsy API do testowania różnych aplikacji na urządzeniach motoryzacyjnych. Jest zbudowany na bazie UI Automator , platformy testowej typu open source, która udostępnia zestaw interfejsów API do tworzenia testów interfejsu użytkownika, które wchodzą w interakcję z aplikacjami użytkownika i systemowymi.

Pobieranie zestawu testów CATBox

Androida 14

Android Automotive 14 to kamień milowy w rozwoju o nazwie kodowej U. Skorzystaj z poniższych łączy, aby pobrać zestawy testowe CATBox dla Androida 14:

Androida 12

Android 12 to kamień milowy w rozwoju o nazwie kodowej S. Skorzystaj z poniższych łączy, aby pobrać zestawy testowe CATBox dla Androida 12:

Androida 11

Android 11 to kamień milowy w rozwoju o nazwie kodowej R. Skorzystaj z poniższych łączy, aby pobrać zestawy testowe CATBox dla Androida 11:

Zbuduj CATBoxa

Użyj polecenia catbox build, gdy kod Android AOSP będzie dostępny na lokalnej stacji roboczej.

Aby zbudować pakiet CATBox lokalnie:

  1. Wybierz element docelowy urządzenia w oparciu o architekturę urządzenia i uruchom następujące polecenie:

    lunch <target>
    
  2. Aby zbudować CATBox, uruchom następującą komendę:

    make catbox
    

    To polecenie tworzy plik android-catbox.zip w katalogu /out/host/linux-x86/catbox , którego można następnie użyć do uruchomienia testów.

Skonfiguruj środowisko

Konfiguracja środowiska wymagana do wykonania testów CATBox jest podobna do konfiguracji CTS . Aby skonfigurować środowisko, wykonaj każde z następujących zadań:

Skonfiguruj i uruchom CATBox

Użyj platformy testowej Tradefed, aby uruchomić testy na urządzeniach z Androidem. Zanim skonfigurujesz CATBox, zapoznaj się z Przeglądem Federacji Handlowej .

Aby skonfigurować i uruchomić CATBox, zapoznaj się z poniższymi sekcjami.

Skonfiguruj urządzenie

Przed uruchomieniem planu testów wykonaj następujące kroki, aby skonfigurować urządzenie:

  1. Upewnij się, że masz zainstalowane najnowsze wersje Android Debug Bridge (adb) i Android Asset Packaging Tool (AAPT) , a także dodałeś lokalizację tych narzędzi do ścieżki systemowej swojego komputera. Aby uzyskać szczegółowe informacje, zobacz ADB i AAPT .

  2. Podłącz co najmniej jedno urządzenie i przygotuj testowane urządzenie (DUT) w następujący sposób:

    1. Aby przywrócić ustawienia fabryczne urządzenia samochodowego, wybierz Ustawienia > System > Opcje resetowania > Usuń wszystkie dane .

    2. Poczekaj, aż urządzenie automatycznie uruchomi się ponownie.

    3. Upewnij się, że adb jest włączone. Aby potwierdzić dostępność urządzenia, uruchom następujące polecenie:

      adb devices
      
    4. Aby włączyć root, uruchom następujące polecenie:

      adb -s DEVICE_SERIAL root
      

      Zastąp DEVICE_SERIAL identyfikatorem seryjnym urządzenia samochodowego.

    5. Połącz się z Wi-Fi.

Wyodrębnij pakiet CATBox

Po skonfigurowaniu urządzenia rozpakuj paczkę CATBox i przejdź do wypakowanego folderu:

unzip android-catbox.zip
cd android-catbox

Wykonaj testy w CATBoxie

Aby uruchomić CATBox z planami testów z pakietu CATBox:

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

Zastąp DEVICE_SERIAL identyfikatorem seryjnym urządzenia samochodowego. Jeśli do komputera hosta podłączonych jest wiele urządzeń, użyj DEVICE_SERIAL , aby je rozróżnić. Zastąp TEST_PLAN_NAME nazwą planu testów, który chcesz uruchomić.

Aby uzyskać najbardziej kompletną listę dostępnych planów, użyj wiersza poleceń:

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

Rodzaje planów testów

Poniższa tabela przedstawia dostępne plany testów funkcjonalnych .

Plany testów funkcjonalnych Opis
catbox-functional Testy funkcjonalne.
catbox-functional-app-info-setting Informacje o aplikacji ustawiające testy funkcjonalne.
catbox-functional-admin-user-grant-permissions Testy funkcjonalne uprawnień administratora.
catbox-functional-app-info-setting-ui-elements Informacje o aplikacji ustawiające testy funkcjonalne.
catbox-functional-appgrid Testy funkcjonalne siatki aplikacji.
catbox-functional-base Lista testów funkcjonalnych.
catbox-functional-bluetooth-audio Testy funkcjonalne dźwięku Bluetooth.
catbox-functional-bluetooth-palette Testy funkcjonalne paska stanu.
catbox-functional-bluetooth-tests Testy Bluetooth za pomocą Moby.
catbox-functional-brightness-palette Testy funkcjonalne paska stanu.
catbox-functional-btmoped Testy funkcjonalne oparte na Bluetooth Motorowerze.
catbox-functional-date-time-setting Testy funkcjonalne ustawiania daty i godziny.
catbox-functional-dial Testy funkcjonalne wybierania.
catbox-functional-display-setting Testy funkcjonalne ustawień wyświetlacza.
catbox-functional-driving-optimized-apps Testy funkcjonalne ograniczeń UX.
catbox-functional-enable-developers-option Włącz testy funkcjonalne opcji programistycznych.
catbox-functional-home Domowe testy funkcjonalne.
catbox-functional-lock-screen Testy funkcjonalne ekranu blokady.
catbox-functional-mediacenter Testy funkcjonalne Media Center.
catbox-functional-microphone-recent-apps Testy funkcjonalne ustawień mikrofonu.
catbox-functional-microphone-setting Testy funkcjonalne ustawień mikrofonu.
catbox-functional-multiuser Testy funkcjonalne dla wielu użytkowników.
catbox-functional-multiuser-system-user Testy funkcjonalne dla wielu użytkowników.
catbox-functional-navigation-bar Testy funkcjonalne paska nawigacyjnego.
catbox-functional-network-palette Testy funkcjonalne paska stanu.
catbox-functional-network-setting Testy funkcjonalne ustawień sieciowych.
catbox-functional-notification Testy funkcjonalne powiadomień.
catbox-functional-privacy-permission-manager Testy funkcjonalne ustawień uprawnień aplikacji.
catbox-functional-privacy-setting Testy funkcjonalne ustawień mikrofonu.
catbox-functional-privacy-setting-ui-elements Testy funkcjonalne ustawień prywatności.
catbox-functional-profile-icon Testy funkcjonalne paska ikon profilu.
catbox-functional-profiles-icon-list Testy listy ikon profili.
catbox-functional-security-setting Testy funkcjonalne ustawień zabezpieczeń.
catbox-functional-setting Ustawianie testów funkcjonalnych.
catbox-functional-settings-location Ustawianie testów lokalizacji.
catbox-functional-sound-setting Testy funkcjonalne ustawień dźwięku.
catbox-functional-status-bar Testy funkcjonalne paska stanu.
catbox-functional-storage-setting Testy funkcjonalne ustawień pamięci masowej.
catbox-functional-system-setting Testy funkcjonalne ustawień systemu.
catbox-functional-systemui Testy interfejsu użytkownika systemu.
catbox-functional-ux-restriction Testy funkcjonalne ograniczeń UX.
catbox-functional-ux-restriction-facet-bar Testy funkcjonalne ograniczeń UX.

Poniższa tabela zawiera plany testów wydajności CATBox.

Plany testów wydajnościowych Opis
catbox-performance-cold-app-start-up-dialer Test wydajności zimnego uruchamiania aplikacji dla Dialera i Telefonu.
catbox-performance-cold-app-start-up-mediacenter Test wydajności zimnego uruchamiania aplikacji dla Media Center.
catbox-performance-cold-app-start-up-settings Test wydajności zimnego uruchamiania aplikacji dla ustawień.
catbox-performance-create-and-switch-to-new-guest Zmierz opóźnienie, aby przełączyć się na nowego gościa.
catbox-performance-create-and-switch-to-new-user Zmierz opóźnienie, aby przełączyć się na nowego użytkownika innego niż administrator.
catbox-performance-hot-app-start-up-dialer Gorący test wydajności uruchamiania aplikacji dla Dialera i Telefonu.
catbox-performance-hot-app-start-up-mediacenter Gorący test wydajności uruchamiania aplikacji dla Media Center.
catbox-performance-hot-app-start-up-settings Gorący test wydajności uruchamiania aplikacji dla Ustawień.
catbox-performance-jank-appgrid Test wydajności dla Appgrid.
catbox-performance-jank-contact-list Test wydajności dla Kontaktów.
catbox-performance-jank-media Testy wydajnościowe dla multimediów.
catbox-performance-jank-media-switch-playback Test wydajności odtwarzania z przełączaniem multimediów.
catbox-performance-jank-notifications Test wydajności powiadomień.
catbox-performance-jank-settings Test wydajności dla Ustawień.
catbox-performance-switch-to-existing-user Zmierz opóźnienie, aby przełączyć się na istniejącego użytkownika.

Uruchom test po stronie hosta na wielu urządzeniach

Wykonanie testów po stronie hosta na wielu urządzeniach wykorzystuje CATBox do uruchomienia testu w jednej sesji. Na przykład 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 instaluje apk , a następnie uruchamiany jest test w poprawnym środowisku wykonawczym Pythona.

Przejrzyj wyniki testu CATBox

Wyniki testów funkcjonalnych i wydajnościowych są zapisywane w android-catbox/results/latest .

Typ wyniku Lokalizacja
Wyniki testu test_result.xml
Szczegóły testów awarii test_result_failures_suite.html
Wyniki metryk wydajności /report-log-files/CatboxPerformanceTests.reportlog.json
Przeprowadzane są testy funkcjonalne i wydajnościowe /android-catbox/logs/latest