Testy motoryzacyjne w pudełku

Complete Automotive Tests in a Box (CATBox) to pakiet oprogramowania typu open source, który zawiera platformy i narzędzia potrzebne do usprawnienia i przeprowadzania testów motoryzacyjnych przy minimalnej konfiguracji. CATBox jest skalowalny i zgodny z narzędziami, infrastrukturą i testami, których używasz do testowania i weryfikowania implementacji systemu Android Automotive OS (AAOS). Dzięki temu możesz oferować na platformie produkty wysokiej jakości.

Projektowanie i wdrażanie CATBox

Zestaw testów CATBox zawiera narzędzia, platformy i testy potrzebne do przeprowadzania testów funkcjonalnych i wydajnościowych na docelowym urządzeniu samochodowym oraz podczas korzystania z urządzenia towarzyszącego.

Na ilustracji poniżej przedstawiono ogólny projekt pakietu CATBox.

CATBox

Rysunek 1. Pakiet CATBox

Tradefed

Tradefed to platforma do ciągłego testowania typu open source, która służy do przeprowadzania testów na urządzeniach z Androidem. Więcej informacji znajdziesz w omówieniu Trade Federation.

Platforma testów motoryzacyjnych

CATBox opiera się na platformie testowej Automotive o nazwie Spectatio, która udostępnia interfejsy API do testowania różnych aplikacji na urządzeniach samochodowych. Jest on oparty na UI Automator, platformie testowej typu open source, która udostępnia zestaw interfejsów API do tworzenia testów interfejsu, które wchodzą w interakcje z aplikacjami użytkownika i systemowymi.

Pobieranie pakietu testów CATBox

Android 14

Android Automotive 14 to wersja etapu rozwoju o nazwie kodowej U. Skorzystaj z tych linków, aby pobrać pakiety testów CATBox na Androida 14:

Android 12

Android 12 to wersja etapu rozwoju o nazwie kodowej S. Skorzystaj z tych linków, aby pobrać pakiety testów CATBox na Androida 12:

Android 11

Android 11 to wersja oznaczona kodem R. Skorzystaj z tych linków, aby pobrać zestawy testów CATBox dla Androida 11:

Tworzenie CATBox

Gdy kod Androida AOSP będzie dostępny na lokalnej stacji roboczej, użyj polecenia catbox build.

Aby skompilować pakiet CATBox lokalnie:

  1. Wybierz urządzenie docelowe na podstawie architektury urządzenia i uruchom to polecenie:

    lunch <target>
  2. Aby utworzyć CATBox, uruchom to polecenie:

    make catbox

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

Konfigurowanie środowiska

Konfiguracja środowiska wymagana do przeprowadzenia testów CATBox jest podobna do konfiguracji CTS. Aby skonfigurować środowisko, wykonaj te czynności:

Konfigurowanie i uruchamianie CATBox

Do uruchamiania testów na urządzeniach z Androidem używaj platformy testowej Tradefed. Zanim skonfigurujesz CATBox, zapoznaj się z omówieniem Trade Federation.

Informacje o konfigurowaniu i uruchamianiu CATBox znajdziesz w sekcjach poniżej.

Konfigurowanie urządzenia

Zanim uruchomisz plan testów, wykonaj te czynności, aby skonfigurować urządzenie:

  1. Upewnij się, że masz zainstalowane najnowsze wersje Android Debug Bridge (adb)Android Asset Packaging Tool (AAPT) oraz że lokalizacja tych narzędzi została dodana do ścieżki systemowej na Twoim komputerze. Więcej informacji znajdziesz w sekcji ADB i AAPT.

  2. Podłącz co najmniej 1 urządzenie i przygotuj testowane urządzenie w ten 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 się ponownie uruchomi.

    3. Sprawdź, czy adb jest włączony. Aby sprawdzić, czy urządzenie jest dostępne, uruchom to polecenie:

      adb devices
    4. Aby włączyć dostęp do roota, uruchom to polecenie:

      adb -s DEVICE_SERIAL root

      Zastąp DEVICE_SERIAL identyfikatorem seryjnym urządzenia samochodowego.

    5. Nawiąż połączenie z siecią Wi-Fi.

Wyodrębnij pakiet CATBox

Po skonfigurowaniu urządzenia rozpakuj pakiet CATBox i otwórz wyodrębniony folder:

unzip android-catbox.zip
cd android-catbox

Przeprowadzanie testów w CATBox

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

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

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

Aby uzyskać pełną listę dostępnych pakietów, użyj wiersza poleceń:

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

Rodzaje planów testów

W tabeli poniżej znajdziesz dostępne plany testów funkcjonalnych.

Plany testów funkcjonalnych Opis
catbox-functional testy funkcjonalne,
catbox-functional-app-info-setting Testy funkcjonalne ustawień informacji o aplikacjach.
catbox-functional-admin-user-grant-permissions Testy funkcjonalne przyznawania uprawnień użytkownikowi z rolą administratora.
catbox-functional-app-info-setting-ui-elements Testy funkcjonalne ustawień informacji o aplikacjach.
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 Bluetootha za pomocą Mobly,
catbox-functional-brightness-palette Testy funkcjonalne paska stanu.
catbox-functional-btmoped Testy funkcjonalne oparte na skuterze Bluetooth.
catbox-functional-date-time-setting Testy funkcjonalne ustawień daty i godziny.
catbox-functional-dial Testy funkcjonalne wybierania numeru.
catbox-functional-display-setting Testy funkcjonalne ustawień wyświetlania.
catbox-functional-driving-optimized-apps Testy funkcjonalne ograniczeń UX.
catbox-functional-enable-developers-option Włącz testy funkcjonalne opcji programisty.
catbox-functional-home Testy funkcjonalne w domu.
catbox-functional-lock-screen Testy funkcjonalne ekranu blokady.
catbox-functional-mediacenter Testy funkcjonalne Centrum multimediów.
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ń sieci.
catbox-functional-notification Testy funkcjonalne powiadomień.
catbox-functional-privacy-permission-manager Testy funkcjonalne ustawień uprawnień aplikacji związanych z prywatnością.
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 Konfigurowanie 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.
catbox-functional-system-setting Testy funkcjonalne ustawień systemowych.
catbox-functional-systemui Testy interfejsu systemu.
catbox-functional-ux-restriction Testy funkcjonalne ograniczeń UX.
catbox-functional-ux-restriction-facet-bar Testy funkcjonalne ograniczeń UX.

W tabeli poniżej znajdziesz plany testów wydajności CATBox.

Plany testów wydajności Opis
catbox-performance-cold-app-start-up-dialer Test wydajności uruchamiania aplikacji w trybie zimnym w przypadku aplikacji Telefon i Dialer.
catbox-performance-cold-app-start-up-mediacenter Test wydajności uruchamiania aplikacji na zimno w przypadku Centrum multimediów.
catbox-performance-cold-app-start-up-settings Test wydajności zimnego startu aplikacji w przypadku ustawień.
catbox-performance-create-and-switch-to-new-guest Pomiar opóźnienia przy przełączaniu na nowego gościa.
catbox-performance-create-and-switch-to-new-user Zmierz opóźnienie, aby przełączyć się na nowego użytkownika bez uprawnień administracyjnych.
catbox-performance-hot-app-start-up-dialer Test wydajności uruchamiania aplikacji w trybie „hot start” w przypadku aplikacji Telefon i Dialer.
catbox-performance-hot-app-start-up-mediacenter Test wydajności uruchamiania aplikacji na Media Center.
catbox-performance-hot-app-start-up-settings Test wydajności uruchamiania aplikacji Ustawienia.
catbox-performance-jank-appgrid Test wydajnościowy Appgrid.
catbox-performance-jank-contact-list Test wydajności dla aplikacji Kontakty.
catbox-performance-jank-media Testy wydajnościowe dotyczące multimediów.
catbox-performance-jank-media-switch-playback Test wydajności odtwarzania podczas przełączania multimediów.
catbox-performance-jank-notifications Test wydajności powiadomień.
catbox-performance-jank-settings Test wydajności ustawień.
catbox-performance-switch-to-existing-user Pomiar opóźnienia przełączania na istniejącego użytkownika.

Uruchom test po stronie hosta na wielu urządzeniach

Do przeprowadzania testów po stronie hosta na wielu urządzeniach używa się CATBox, który uruchamia test w 1 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 test jest uruchamiany w odpowiednim środowisku wykonawczym Pythona.

Sprawdzanie wyników 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 awaryjnych test_result_failures_suite.html
Wyniki danych dotyczących skuteczności /report-log-files/CatboxPerformanceTests.reportlog.json
Uruchomienia testów funkcjonalnych i wydajnościowych /android-catbox/logs/latest