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.
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:
Wybierz urządzenie docelowe 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 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:
Zainstaluj ADB i AAPT.
Zainstaluj JDK. Zobacz Java Development Kit for Ubuntu.
Zwiększ limit pamięci. Zobacz wymagania dotyczące miejsca na dane.
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:
Upewnij się, że masz zainstalowane najnowsze wersje Android Debug Bridge (adb) i 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.
Podłącz co najmniej 1 urządzenie i przygotuj testowane urządzenie w ten sposób:
Aby przywrócić ustawienia fabryczne urządzenia samochodowego, wybierz Ustawienia > System > Opcje resetowania > Usuń wszystkie dane.
Poczekaj, aż urządzenie automatycznie się ponownie uruchomi.
Sprawdź, czy adb jest włączony. Aby sprawdzić, czy urządzenie jest dostępne, uruchom to polecenie:
adb devices
Aby włączyć dostęp do roota, uruchom to polecenie:
adb -s DEVICE_SERIAL root
Zastąp
DEVICE_SERIAL
identyfikatorem seryjnym urządzenia samochodowego.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 |