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.
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:
Wybierz kierowanie na urządzenie na podstawie architektury urządzenia i uruchom to polecenie:
lunch <target>
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:
Zainstaluj ADB i AAPT.
Zainstaluj JDK. Zapoznaj się z Java Development Kit dla Ubuntu.
Zwiększ limit pamięci. Zobacz wymagania dotyczące miejsca na dane.
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:
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.
Podłącz co najmniej 1 urządzenie i przygotuj urządzenie testowe w następujący sposób:
Aby przywrócić urządzenie samochodowe do ustawień fabrycznych, wybierz Ustawienia > System > Opcje resetowania > Wymaż wszystkie dane.
Poczekaj, aż urządzenie automatycznie się uruchomi.
Upewnij się, że adb jest włączone. Aby sprawdzić, czy urządzenie jest dostępne, uruchom to polecenie:
adb devices
Aby włączyć konto root, uruchom to polecenie:
adb -s DEVICE_SERIAL root
Zastąp
DEVICE_SERIAL
numerem seryjnym urządzenia motoryzacyjnego.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 |