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ą oraz 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 urządzeniu docelowym w samochodzie oraz podczas korzystania z urządzenia towarzyszącego.

Ilustracja poniżej przedstawia 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 zestawu testów CATBox

Android 14

Android Automotive 14 to wersja etapu rozwoju o nazwie kodowej U. Skorzystaj z tych linków, aby pobrać zestawy 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ć zestawy 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 docelowe urządzenie na podstawie architektury urządzenia i uruchom to polecenie:

    lunch <target>
  2. Aby skompilować 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

Użyj platformy testowej Tradefed, aby uruchomić testy na urządzeniach z Androidem. 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 > Wykasuj 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ć użytkownika root, 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 ikony 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 planó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 ustawienia dotyczącego informacji o aplikacjach.
catbox-functional-admin-user-grant-permissions Testy funkcjonalne przyznawania uprawnień użytkownikom z rolą administratora.
catbox-functional-app-info-setting-ui-elements Testy funkcjonalne ustawienia dotyczącego 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 Domowe testy funkcjonalne.
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ń systemu.
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 uruchamiania 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 Pomiar opóźnienia podczas przełączania na nowego użytkownika bez uprawnień administracyjnych.
catbox-performance-hot-app-start-up-dialer Test wydajności uruchamiania aplikacji na gorąco w przypadku aplikacji Telefon i Dialer.
catbox-performance-hot-app-start-up-mediacenter Test wydajności uruchamiania aplikacji na gorąco w przypadku Centrum multimediów.
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 kontaktów.
catbox-performance-jank-media Testy wydajnościowe dotyczące multimediów.
catbox-performance-jank-media-switch-playback Test wydajności odtwarzania 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.

Uruchamianie testu po stronie hosta na wielu urządzeniach

Do przeprowadzania testów po stronie hosta na wielu urządzeniach używa się CATBox, aby uruchomić test 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 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 testów 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