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.
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:
Wybierz element docelowy urządzenia w oparciu o architekturę urządzenia i uruchom następujące polecenie:
lunch <target>
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ń:
Zainstaluj ADB i AAPT .
Zainstaluj JDK-a. Zobacz Zestaw programistyczny Java dla Ubuntu .
Zwiększ limit pamięci. Zobacz Wymagania dotyczące przechowywania .
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:
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 .
Podłącz co najmniej jedno urządzenie i przygotuj testowane urządzenie (DUT) w następujący sposób:
Aby przywrócić ustawienia fabryczne urządzenia samochodowego, wybierz Ustawienia > System > Opcje resetowania > Usuń wszystkie dane .
Poczekaj, aż urządzenie automatycznie uruchomi się ponownie.
Upewnij się, że adb jest włączone. Aby potwierdzić dostępność urządzenia, uruchom następujące polecenie:
adb devices
Aby włączyć root, uruchom następujące polecenie:
adb -s DEVICE_SERIAL root
Zastąp
DEVICE_SERIAL
identyfikatorem seryjnym urządzenia samochodowego.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 wskaźników wydajności | /report-log-files/CatboxPerformanceTests.reportlog.json |
Przeprowadzane są testy funkcjonalne i wydajnościowe | /android-catbox/logs/latest |