Testy motoryzacyjne w pudełku

Complete Automotive Tests in a Box (CATBox) to pakiet open source, który zawiera ramy i narzędzia potrzebne do uproszczenia i przeprowadzenia testów pojazdów z minimalną konfiguracją. CATBox jest skalowalny i kompatybilny 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 wysokiej jakości produkty.

Projektowanie i wdrażanie CATBox

Zbiór testów CATBox zawiera narzędzia, platformy i testy potrzebne do przeprowadzania testów funkcjonalnych i testów wydajności na urządzeniu docelowym w samochodach oraz przy użyciu urządzenia towarzyszącego.

Poniższy obraz przedstawia ogólny projekt pakietu CATBox.

CATBox

Rysunek 1. Pakiet CATBox

Tradefed

Tradefed to framework do ciągłego testowania oparty na open source, który służy do wykonywania testów na urządzeniach z Androidem. Szczegółowe informacje znajdziesz w artykule Omówienie federacji handlowej.

Platforma testowa dla branży motoryzacyjnej

CATBox opiera się na systemie testów motoryzacyjnych Spectatio, który udostępnia interfejsy API do testowania różnych aplikacji na urządzeniach motoryzacyjnych. Jest ono oparte na UI Automator, czyli platformie testowania o otwartym kodzie, która udostępnia zestaw interfejsów API do tworzenia testów interfejsu użytkownika, które współpracują z aplikacją użytkownika i aplikacją systemową.

.

Pobieranie zestawów testów CATBox

Android 14

Android Automotive w wersji 14 to wydanie etapu rozwoju o nazwie kodowej U. Aby pobrać zestawy testów CATBox na Androida 14, użyj tych linków:

Android 12

Android 12 to wersja etapu rozwoju o nazwie kodowej S. Aby pobrać zestawy testów CATBox na Androida 12, użyj tych linków:

Android 11

Android 11 to wersja kamienia milowego w rozwoju o nazwie kodowej R. Aby pobrać zestawy testów CATBox na Androida 11, użyj tych linków:

Tworzenie CATBox

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

Aby skompilować pakiet CATBox lokalnie:

  1. Wybierz kierowanie na urządzenie 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 przeprowadzania testów.

Konfigurowanie środowiska

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

Konfigurowanie i uruchamianie CATBox

Użyj platformy testowej Tradefed do przeprowadzania testów na urządzeniach z Androidem. Zanim skonfigurujesz CATBox, zapoznaj się z opisem federacji wymiany.

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

Konfigurowanie urządzenia

Zanim uruchomisz plan testowy, wykonaj te czynności, 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 dodasz lokalizację tych narzędzi do ścieżki systemowej komputera. Więcej informacji znajdziesz w dokumentacji ADB i AAPT.

  2. Podłącz co najmniej 1 urządzenie i przygotuj urządzenie testowe w następujący sposób:

    1. Aby przywrócić urządzenie samochodowe do ustawień fabrycznych, wybierz Ustawienia > System > Opcje resetowania > Wymaż wszystkie dane.

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

    3. Upewnij się, że adb jest włączone. Aby sprawdzić, czy urządzenie jest dostępne, uruchom to polecenie:

      adb devices
      
    4. Aby włączyć konto root, uruchom to polecenie:

      adb -s DEVICE_SERIAL root
      

      Zastąp DEVICE_SERIAL numerem seryjnym urządzenia motoryzacyjnego.

    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

Wykonywanie 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 numerem seryjnym urządzenia motoryzacyjnego. Jeśli masz kilka urządzeń połączonych z hostem, użyj DEVICE_SERIAL, aby je odróż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

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 aplikacji.
catbox-functional-admin-user-grant-permissions Testy funkcjonalne przyznawania uprawnień przez użytkownika o roli administratora
catbox-functional-app-info-setting-ui-elements Testy funkcjonalne ustawień informacji o aplikacji.
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ą Mobly.
catbox-functional-brightness-palette testy funkcjonalne paska stanu;
catbox-functional-btmoped testy funkcjonalne na podstawie Bluetooth Moped;
catbox-functional-date-time-setting testy funkcjonalne ustawień daty i godziny;
catbox-functional-dial Testy funkcjonalne wybierania.
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 dotyczące domu.
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ń sieci.
catbox-functional-notification Testy funkcjonalne powiadomień.
catbox-functional-privacy-permission-manager Testy funkcjonalne ustawień prywatności i 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 ikony w pasku profilu.
catbox-functional-profiles-icon-list Ikona profili na liście testów
catbox-functional-security-setting testy funkcjonalne ustawień zabezpieczeń;
catbox-functional-setting Konfigurowanie testów funkcjonalnych.
catbox-functional-settings-location Testowanie ustawień 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 poniższej tabeli znajdziesz plany testów skuteczności w CATBox.

Plany testów skuteczności Opis
catbox-performance-cold-app-start-up-dialer Test wydajności aplikacji Dialer i Phone podczas uruchamiania z zimnego stanu.
catbox-performance-cold-app-start-up-mediacenter Test wydajności uruchamiania aplikacji Media Center „na zimno”.
catbox-performance-cold-app-start-up-settings Test wydajności aplikacji bez kontekstu historycznego w przypadku ustawień.
catbox-performance-create-and-switch-to-new-guest Zmierz opóźnienie, aby przejść do nowego gościa.
catbox-performance-create-and-switch-to-new-user Zmierz opóźnienie, aby przejść do nowego konta użytkownika, który nie jest administratorem.
catbox-performance-hot-app-start-up-dialer Test wydajności aplikacji Dialer i Telefon podczas uruchamiania z poziomu ekranu głównego.
catbox-performance-hot-app-start-up-mediacenter Test wydajności uruchamiania aplikacji Media Center w trybie szybkiego uruchamiania.
catbox-performance-hot-app-start-up-settings Test wydajności uruchamiania aplikacji Ustawienia.
catbox-performance-jank-appgrid Test wydajności Appgrid.
catbox-performance-jank-contact-list Test wydajności aplikacji Kontakty.
catbox-performance-jank-media Testy skuteczności dotyczące multimediów.
catbox-performance-jank-media-switch-playback Test wydajności 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 w przypadku przełączenia na istniejącego użytkownika.

Przeprowadź test po stronie hosta na wielu urządzeniach

Do testowania na hoście wielourządzeniowym służy CATBox, który umożliwia przeprowadzenie 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 test jest uruchamiany w odpowiednim środowisku wykonywania Pythona.

Sprawdzanie wyników testu CATBox

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

Typ wyniku Lokalizacja
Wyniki testu test_result.xml
Szczegóły testów nieudanych test_result_failures_suite.html
Wyniki danych dotyczących skuteczności /report-log-files/CatboxPerformanceTests.reportlog.json
testy funkcjonalne i testy wydajności; /android-catbox/logs/latest