Stacja testowa Androida obsługuje urządzenia wirtualne Cuttlefish, które umożliwiają przeprowadzanie testów bez fizycznych urządzeń z Androidem. Mątwy nadaje się do testowania funkcji niezależnych od sprzętu. Zanim zaczniesz używać urządzeń wirtualnych, postępuj zgodnie z przewodnikiem użytkownika, aby zainstalować aplikację Android Test Station.
ATS obsługuje urządzenia wirtualne w 2 trybach: lokalnym i zdalnym. W tabeli poniżej znajdziesz porównanie 2 trybów.
Lokalne urządzenia wirtualne | Zdalne urządzenia wirtualne |
---|---|
Uruchamia się na hostach instancji roboczych ATS | działa na hostach zdalnych, do których host roboczy ATS może uzyskać dostęp przez SSH |
Procesor x86 | Może to być x86 lub ARM w zależności od architektury hosta |
Łatwiejsza konfiguracja | Konfiguracja jest bardziej skomplikowana |
Lokalne i zdalne urządzenia wirtualne można włączać niezależnie. Szczegółowe informacje o poszczególnych trybach znajdziesz tutaj:
Konfigurowanie lokalnych urządzeń wirtualnych
W tej sekcji opisaliśmy, jak skonfigurować ATS dla lokalnych urządzeń wirtualnych.
Zainstaluj zależności mątwy
Uruchom to polecenie, by upewnić się, że niezbędne moduły jądra zostały załadowane:
sudo modprobe -a kvm tun vhost_net vhost_vsock
Uruchamianie aplikacji Android Test Station za pomocą lokalnych urządzeń wirtualnych
Przed uruchomieniem ATS upewnij się, że wszystkie instancje Cuttlefish zostały zatrzymane. ATS automatycznie uruchamia i zatrzymuje urządzenia wirtualne w trakcie cyklu testowego, a istniejące instancje Cuttlefish są w konflikcie z instancjami zarządzanymi przez ATS. Szczegółowe informacje o zatrzymywaniu instancji Cuttlefish znajdziesz w sekcji Zatrzymywanie mątwy.
Aby włączyć lokalne urządzenia wirtualne, uruchom polecenie:
mtt start --max_local_virtual_devices N
N
to maksymalna liczba urządzeń wirtualnych, które usługa ATS może jednocześnie przydzielić. Wartość domyślna to 0.
Jeśli polecenie nie powiedzie się z powodu braku węzłów urządzeń, wykonaj czynności podane w komunikacie o błędzie, aby wczytać moduły jądra. Jeśli problem będzie nadal występował, uruchom ponownie komputer.
Konfigurowanie zdalnych urządzeń wirtualnych
W tej sekcji opisaliśmy, jak skonfigurować ATS dla zdalnych urządzeń wirtualnych.
Zainstaluj zależności mątwy
Aby zainstalować zależności Cuttlefish, wykonaj te czynności.
Zainstaluj pakiety Debiana na hoście zdalnym, wykonując czynności opisane na stronie Cuttlefish > Pierwsze kroki.
Aby skonfigurować maksymalną liczbę urządzeń wirtualnych na hoście zdalnym, wykonaj te czynności:
- Edytuj plik
/etc/default/cuttlefish-host-resources
z uprawnieniami użytkownika root. - Ustaw
num_cvd_accounts
na maksymalną liczbę urządzeń wirtualnych dozwolonych na tym hoście. - Uruchom
sudo systemctl restart cuttlefish-host-resources
. - Uruchom
ifconfig
i sprawdź liczbę interfejsówcvd-wtap-*
.
- Edytuj plik
Utwórz konto SSH
Host ATS łączy się z hostem zdalnym przez SSH, więc musisz przygotować konto SSH na hoście zdalnym. Ponieważ ATS modyfikuje pliki w katalogu HOME, zalecamy utworzenie dedykowanego konta.
Host ATS wymaga pary kluczy SSH, aby zalogować się do hosta zdalnego bez hasła. Poniższe kroki opisują, jak skonfigurować klucze SSH:
- Aby wygenerować klucz prywatny i klucz publiczny, uruchom
ssh-keygen
na hoście ATS. - Prześlij i dołącz klucz publiczny do adresu
~/.ssh/authorized_keys
na hoście zdalnym.
Jeśli Twoje konto SSH jest inne niż używane do instalowania zależności Cuttlefish, aby umożliwić kontu SSH uruchomienie Cuttlefish, uruchom to polecenie na hoście zdalnym:
sudo usermod -aG kvm,cvdnetwork,render $USER
Uruchamianie ATS ze zdalnymi urządzeniami wirtualnymi
Przed uruchomieniem ATS upewnij się, że wszystkie instancje Cuttlefish zostały zatrzymane. ATS automatycznie uruchamia i zatrzymuje urządzenia wirtualne w trakcie cyklu testowego, a istniejące instancje Cuttlefish są w konflikcie z instancjami zarządzanymi przez ATS. Szczegółowe informacje o zatrzymywaniu instancji Cuttlefish znajdziesz w sekcji Zatrzymywanie mątwy.
Aby uzyskać lepszą wydajność, zalecamy skonfigurowanie hosta ATS i hosta zdalnego w sieci lokalnej.
Aby włączyć zdalne urządzenia wirtualne, uruchom to polecenie na hoście ATS:
mtt start --remote_virtual_devices USER@HOST/N \
--remote_ssh_key KEY
USER
to nazwa konta SSH.
HOST
to adres IPv4 hosta zdalnego.
N
to maksymalna liczba urządzeń wirtualnych, które usługa ATS może jednocześnie przydzielić.
KEY
to ścieżka do prywatnego klucza SSH na hoście ATS.
Polecenie przetestować połączenie z hostem zdalnym przed uruchomieniem ATS.
Jeśli w konsoli wyświetli się komunikat ostrzegawczy, na przykład The specified --remote_virtual_devices and --remote_ssh_key are invalid.
, sprawdź konfigurację SSH.
Aby uniknąć konfliktów zasobów, host ATS może łączyć się maksymalnie z 1 hostem zdalnym. Z jednym hostem zdalnym nie można w tym samym czasie połączyć się z kilkoma hostami ATS.
Przeprowadzanie testów na urządzeniach wirtualnych
W tej sekcji dowiesz się, jak przeprowadzać testy na lokalnych lub zdalnych urządzeniach wirtualnych.
Wybierz urządzenia
System ATS wyświetla urządzenia wirtualne na liście urządzeń jako obiekty zastępcze, a nie ich faktyczne numery seryjne. Obiekty zastępcze mają format HOSTNAME:local-virtual-device-ID w przypadku lokalnych urządzeń wirtualnych; remote-virtual-ADDRESS-ID w przypadku zdalnych urządzeń wirtualnych. Dostępne stany to Dostępne lub Przydzielone. Obiekt zastępczy w stanie Dostępne oznacza, że urządzenie wirtualne nie jest uruchomione i można je przydzielić na potrzeby testu.
Rysunek 1. Wybieranie urządzeń wirtualnych
Dodaj działania na urządzeniu
Jeśli wybierzesz co najmniej 1 urządzenie wirtualne, powiązane z nim działanie powinno zostać automatycznie dodane do listy. Działanie składa się z wymaganych parametrów TradeFed i zasobów testowych do tworzenia urządzeń wirtualnych.
Rysunek 2. Działania na lokalnych urządzeniach wirtualnych
Rysunek 3. Działania na zdalnych urządzeniach wirtualnych
Ustawianie zasobów testowych
Urządzenia wirtualne Cuttlefish wymagają 3 zasobów testowych: maszyn wirtualnych, obrazów i Acloud.
W typowej kompilacji Cuttlefish (np. aosp_cf_x86_64_phone
na ci.android.com) narzędzia maszyn wirtualnych są zapakowane w cvd-host_package.tar.gz
, a obrazy w aosp_cf_x86_64_phone-img-*.zip
. Plik binarny Acloud jest wbudowany w procesor ATS i jest zgodny ze wszystkimi wersjami Cuttlefish. Domyślny URL pobierania pliku binarnego Acloud można zmienić tylko na potrzeby debugowania.
Rysunek 4. Testowanie zasobów dla urządzeń wirtualnych
Wyświetl uruchomienia testowe
Logi urządzenia, w tym kernel.log
, host_log.txt
i launcher.log
, są zbierane w folderze pliku wyjściowego. Aby je zobaczyć, kliknij Wyświetl pliki wyjściowe.
Rysunek 5. Wyniki testu