Na tej stronie znajdziesz instrukcje konfigurowania i uruchamiania testów CTS Verifier (CTS-V) po stronie hosta na Androidzie 16 QPR2 i Androidzie 17. Istnieją 2 rodzaje testów po stronie hosta: testy na wielu urządzeniach (wprowadzone przed Androidem 17) i testy interaktywne (nowość w Androidzie 17):
- Testy na wielu urządzeniach to w pełni zautomatyzowane testy.
- Testy interaktywne to testy półautomatyczne, które wymagają wykonania pewnych kroków ręcznych na testowanym urządzeniu.
Oprócz nowych testów interaktywnych testy dokładności pomiaru ręcznego i testy telekomunikacyjne są teraz testami wielourządzeniowymi po stronie hosta, a testy połączenia Wi-Fi są wymagane.
Konfigurowanie testów po stronie hosta
Aby skonfigurować testy po stronie hosta (testy na wielu urządzeniach wymagają dodatkowej konfiguracji):
Sprawdź, czy komputer stacjonarny spełnia wymagania systemowe w przypadku CTS.
Aby zainstalować i sprawdzić, czy adb, AAPT2 i Python są prawidłowo zainstalowane na komputerze, wykonaj kroki 2 i 5 z sekcji Instalowanie oprogramowania na komputer.
Wersja Pythona na komputerze powinna być 3.11 lub nowsza. Aby określić wersję Pythona, uruchom
python3 --version. Jeśli wersja jest niższa niż 3.11, zainstaluj najnowszą oficjalną wersję Pythona. Szczegółowe informacje znajdziesz w sekcji Pobieraniepython.orgna stronie.Niektóre testy wymagają, aby host miał moduł Pythona
venv. W systemach Debian i Ubuntu ten moduł może nie być zainstalowany domyślnie. Aby sprawdzić, czy wersja Pythona na komputerze zawiera modułvenv, uruchompython3 -m venv venv. Jeśli to polecenie się nie powiedzie, wyświetli się komunikat o błędzie. Postępuj zgodnie z instrukcjami, aby zainstalowaćpython3.x-venvpakiet.
Jeśli uruchamiasz tylko interaktywne testy po stronie hosta, przejdź do sekcji Uruchamianie testów po stronie hosta. Jeśli jednak chcesz przeprowadzić testy na wielu urządzeniach, przejdź do sekcji Konfigurowanie testów na wielu urządzeniach po stronie hosta.
Konfigurowanie testów na wielu urządzeniach po stronie hosta
Aby skonfigurować testy na wielu urządzeniach po stronie hosta, wykonaj te czynności:
Sprawdź, czy komputer stacjonarny spełnia wymagania systemowe w przypadku CTS.
Aby zainstalować i sprawdzić, czy adb, AAPT2 i Python są prawidłowo zainstalowane na komputerze, wykonaj kroki 2 i 5 z sekcji Instalowanie oprogramowania na komputer.
Wersja Pythona na komputerze powinna być 3.11 lub nowsza. Aby określić wersję Pythona, uruchom
python3 --version. Jeśli wersja jest niższa niż 3.11, zainstaluj najnowszą oficjalną wersję Pythona. Szczegółowe informacje znajdziesz w sekcji Pobieraniepython.orgna stronie.- Niektóre testy wymagają, aby host miał moduł Pythona
venv. W systemach Debian i Ubuntu ten moduł może nie być zainstalowany domyślnie. Aby sprawdzić, czy wersja Pythona na komputerze zawiera modułvenv, uruchompython3 -m venv venv. Jeśli to polecenie się nie powiedzie, wyświetli się komunikat o błędzie. Postępuj zgodnie z instrukcjami, aby zainstalowaćpython3.x-venvpakiet.
- Niektóre testy wymagają, aby host miał moduł Pythona
Przygotuj 2 pasujące urządzenia DUT, na których skonfigurowano CTS-V.
- Szczegółowe informacje o konfigurowaniu DUT znajdziesz w artykule Konfigurowanie DUT.
- Szczegółowe informacje o konfigurowaniu CTS-V znajdziesz w sekcji Konfiguracja.
Przejdź do sekcji konfiguracji odpowiedniej dla Twojego typu testu:
- W przypadku testów NFC zapoznaj się z artykułem Konfigurowanie testów NFC.
- W przypadku testów połączenia z punktem dostępu Wi-Fi przejdź do sekcji Konfigurowanie testów połączenia z punktem dostępu Wi-Fi.
- Informacje o testach dokładności pomiaru odległości znajdziesz w artykule Konfigurowanie testów dokładności pomiaru odległości.
- Aby przetestować moduł CDM, zapoznaj się z sekcją Konfigurowanie standardowych testów na 2 urządzeniach, a następnie przejdź do sekcji Konfigurowanie testów CDM.
Jeśli testu nie ma na tej liście, przejdź do sekcji Konfigurowanie standardowych testów na 2 urządzeniach.
Konfigurowanie testów NFC
Testy NFC wykorzystują jedno testowane urządzenie i 1 chip NFC PN532.
Aby skonfigurować testy NFC:
- Kup chip NFC PN532. Zalecamy All-In-One PN532.
- Na testowanym urządzeniu otwórz aplikację Ustawienia.
- Włącz NFC.
Umieść chip NFC:
W przypadku telefonów umieść czytnik NFC urządzenia DUT w sposób pokazany na rysunku 1:

Rysunek 1. Położenie chipa NFC.
W przypadku innych typów urządzeń umieść chip obok anteny NFC urządzenia.
Podłącz chip NFC PN532 do stacji roboczej za pomocą kabla USB.
Konfigurowanie testów połączenia z punktem dostępu Wi-Fi
Testy połączenia z punktem dostępu Wi-Fi (CtsWifiConnectionTests) sprawdzają łączność między testowanym urządzeniem a punktem dostępu. Te testy możesz skonfigurować na 2 sposoby:
- Opcja 1. Użyj istniejącej sieci Wi-Fi skonfigurowanej na potrzeby CTS-V.
- Opcja 2. Skonfiguruj programowalny punkt dostępu.
W przypadku Androida 17 zdecydowanie zalecamy opcję 2, ale nie jest ona wymagana. W 2 sekcjach poniżej znajdziesz opis każdej z tych opcji.
Opcja 1. Użyj istniejącej sieci Wi-Fi skonfigurowanej dla CTS-V
Opcja 1 wymaga jednego urządzenia z Androidem w zasięgu sieci Wi-Fi. Jeśli DUT znajduje się w obudowie ekranującej i nie może połączyć się z siecią Wi-Fi, wyjmij go z niej.
Opcja 2. Skonfiguruj programowalny punkt dostępu
Aby skonfigurować programowalny punkt dostępu do testów połączenia Wi-Fi:
Kup Banana Pi R3 AP i skonfiguruj go. Informacje o zakupie i konfigurowaniu punktu dostępu Banana Pi R3 znajdziesz w artykule Konfigurowanie punktu dostępu Banana Pi BPI-R3.
(Opcjonalnie) Jeśli nie masz skrzynki ekranującej, zalecamy skrzynkę JTP-SR101. Kup ten pakiet, korzystając z tych informacji:
Dong Guan Zheng Sheng Electronics Technology Co., LTD
Bohui Industrial Park, Panlong Road, Liaobu Town, Dongguan City, Guangdong Province, Chiny
Kontakt: Forest Pan
E-mail: forest.pan@jtpmak.cn
Telefon (Chiny): +86 18676993556
Podłącz DUT i AP do hosta i umieść je w osłonie RF. Urządzenie DUT i punkt dostępu powinny znajdować się w odległości co najmniej 10 cm od siebie. Na rysunku 2 widać tę konfigurację:

Rysunek 2. DUT i AP w pudełku ekranowanym.
Użyj SSH, aby sprawdzić, czy punkt dostępu jest dostępny z hosta.
Konfigurowanie testów dokładności pomiaru odległości
Aby skonfigurować testy dokładności pomiaru odległości:
Umieść 2 pasujące urządzenia z Androidem w odległości 1 metra od siebie, na tej samej wysokości, w bezpośrednim polu widzenia i tyłem do siebie. Rysunek 3 przedstawia tę orientację:

Rysunek 3. Orientacja urządzenia.
Połącz oba urządzenia z komputerem stacjonarnym za pomocą kabli USB.
Konfigurowanie standardowych testów na 2 urządzeniach
W przypadku domyślnej konfiguracji z 2 urządzeniami:
Umieść 2 pasujące urządzenia z Androidem w odległości około 20 cm od siebie.
Zdecydowanie zalecane: umieść oba urządzenia w pudełku ekranowanym. Osłona poprawia stabilność testu i ułatwia debugowanie błędów.
W przypadku testów telekomunikacyjnych każde urządzenie musi mieć kartę SIM i sygnał komórkowy. Jeśli DUT znajdują się w osłonie, sygnał komórkowy musi być do niej doprowadzony. W przeciwnym razie wyjmij urządzenia z pudełka ekranującego.
Opcjonalnie: skonfiguruj sniffer OTA do debugowania Wi-Fi.
Konfigurowanie testów CDM
test_permissions_sync Element testowania zachowuje się inaczej w zależności od rodzaju kompilacji urządzeń, na których jest wykonywany. Konieczne jest, aby producenci OEM testowali obie wersje – z możliwością debugowania (userdebug lub eng) i niedebugowalną (user) – i aby testy w obu przypadkach zakończyły się powodzeniem.
Zwolnienie
Klauzula CDD dotycząca implementacji interfejsu API synchronizacji uprawnień wymaga jedynie, aby interfejs API mógł przesyłać dane między urządzeniami przez bezpieczny kanał. Implementacja bezpiecznego kanału nie jest wymagana w ramach CDD, więc ten test można pominąć w przypadku kompilacji, których nie można debugować (użytkownik), ale tylko wtedy, gdy chcesz zrezygnować z obsługi funkcji synchronizacji uprawnień CDM.
Testy muszą być przeprowadzane bez wyjątku w przypadku kompilacji z możliwością debugowania.
Wymagania wstępne dotyczące testowania na kompilacjach, których nie można debugować
Jeśli nie jesteś zwolniony(-a) z tego obowiązku, sprawdź, czy spełniasz te wymagania wstępne.
Bezpieczny kanał używa AVF (AttestationVerificationFramework) do weryfikacji wiarygodności sprzętu. Atesty generowane przez obie strony zawierają kilka informacji o nich samych, które potwierdzają, że w ich systemie nie doszło do żadnych nieautoryzowanych zmian. Podczas procesu weryfikacji AVF sprawdza te stany:
Urządzenie ma dostęp do internetu
Urządzenie korzysta z weryfikacji podczas uruchamiania, a kompilacja jest podpisana kluczem wersji (nie kluczem deweloperskim).
Program rozruchowy urządzenia jest zablokowany. Więcej informacji znajdziesz w artykule o blokowaniu bootloadera.
System operacyjny, klucz rozruchu i poprawki na poziomie dostawcy klucza są aktualne (nie starsze niż 12 miesięcy). Nie używaj kompilacji starszej niż rok.
Atest urządzenia jest oparty na jednym z zatwierdzonych przez dostawcę certyfikatów głównych. Określ zaufane certyfikaty główne w
vendor_required_attestation_certificates.xmlnakładce zasobów.
Uruchamianie testów po stronie hosta
Niektóre testy na wielu urządzeniach, np. testy NFC, wymagają dodatkowej konfiguracji. W przypadku testów, które wymagają dodatkowej konfiguracji, każdy test jest przeprowadzany osobno. Testy, które nie wymagają dodatkowej konfiguracji, możesz przeprowadzać w grupie.
Na stacji roboczej testowej otwórz konsolę
cts-v-hostw katalogu, w którym rozpakowano pakiet ZIP CTS-V:./android-cts-verifier/android-cts-v-host/tools/cts-v-host-tradefedW aplikacji CTS-V na urządzeniu kliknij Host-side Tests (Testy po stronie hosta). Rysunek 4 przedstawia testy po stronie hosta w aplikacji CTS-V:
Rysunek 4. Testy po stronie hosta w aplikacji CTS-V.
Wyświetli się lista modułów testowych na wielu urządzeniach po stronie hosta.
W konsoli hosta CTS-V użyj tego polecenia, aby uruchomić testy na wielu urządzeniach, które korzystają ze standardowej konfiguracji z 2 urządzeniami:
run cts-v-host-multidevice-defaultWyniki pojawiają się w aplikacji CTS-V na DUT pod każdym modułem testowym. Testy oznaczone na zielono zostały zaliczone, a testy oznaczone na czerwono nie zostały zaliczone.
Na rysunku 5 przedstawiono przykładowe wyniki testów CtsCompanionDeviceManager:
Rysunek 5. Wyniki testów na wiele urządzeń po stronie hosta w aplikacji CTS-V.
W konsoli hosta CTS-V uruchom testy interaktywne za pomocą tego polecenia:
run cts-v-host-interactiveWyniki pojawiają się w aplikacji CTS-V na DUT pod każdym modułem testowym. Testy oznaczone na zielono zostały zaliczone, a testy oznaczone na czerwono nie zostały zaliczone.
W przypadku każdego testu, który wymagał dodatkowej konfiguracji, uruchom go osobno za pomocą tego polecenia:
run cts-v-host -m test_module_nameAby na przykład uruchomić testy NFC, użyj tego polecenia:
run cts-v-host -m CtsNfcHceMultiDeviceTestCasesWyniki pojawiają się w aplikacji CTS-V na DUT pod każdym modułem testowym. Testy oznaczone na zielono zostały zaliczone, a testy oznaczone na czerwono nie zostały zaliczone.
Przeprowadzanie testów połączenia z punktem dostępu Wi-Fi
Testy połączenia z punktem dostępu Wi-Fi możesz przeprowadzić na 2 sposoby:
- Opcja 1. Użyj istniejącej sieci Wi-Fi skonfigurowanej na potrzeby CTS-V.
- Opcja 2. Skonfiguruj programowalny punkt dostępu.
Opcja 1. Użyj istniejącej sieci Wi-Fi skonfigurowanej dla CTS-V
Aby przeprowadzić testy połączenia z punktem dostępu Wi-Fi w istniejącej sieci Wi-Fi:
Edytuj plik konfiguracji testbedu (
WifiConnectionTestbed.yaml). Ten plik znajduje się w katalogu, w którym rozpakowano CTS-Verifier. Przykład:./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yamlZmień wartości pól
wifi_ssidiwifi_passwordna identyfikator SSID i hasło sieci Wi-Fi. W przykładzie poniżej pokazujemy, gdzie znajdują się te ustawienia:TestBeds: - Name: WifiConnectionTestbed Controllers: AndroidDevice: '*' TestParams: use_programmable_ap: False wifi_ssid: WIFI-SSID wifi_password: WIFI-PASSWORDW konsoli hosta CTS-V uruchom to polecenie:
run cts-v-host -m CtsWifiConnectionTests
Opcja 2. Uruchomienie z programowalnym AP
Aby przeprowadzić testy połączenia z punktem dostępu Wi-Fi na programowalnym punkcie dostępu:
Edytuj plik konfiguracji testbedu (
WifiConnectionTestbed.yaml). Ten plik znajduje się w katalogu, w którym rozpakowano CTS-Verifier. Przykład:./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yamlZmień wartość
hostnamena adres IP punktu dostępu na podstawie lokalnych ustawień SSH. Aby znaleźć adres IP, zapoznaj się z artykułem Znajdowanie adresu IP punktu dostępu. W przykładzie poniżej pokazujemy, gdzie znajduje się ustawieniehostname:TestBeds: - Name: WifiConnectionTestbed Controllers: AndroidDevice: '*' # Specify settings for the AP. OpenWrtDevice: - hostname: AP-IP skip_init_reboot: True TestParams: use_programmable_ap: TrueW konsoli hosta CTS-V uruchom to polecenie:
run cts-v-host -m CtsWifiConnectionTests
Przeprowadzanie testów po stronie hosta USB
Android 17 zawiera testy CTS-V po stronie hosta USB, które wymagają połączenia adb przez Wi-Fi.
Niektóre testy USB wymagają użycia hosta CTS-V, aby uzyskać dostęp do interfejsów SystemAPI, które mają uprawnienia niedostępne dla zwykłej aplikacji CTS-V. Te testy są przeprowadzane bezprzewodowo i wymagają korzystania z adb przez Wi-Fi.
Jeśli testowane urządzenie obsługuje raportowanie typu BC 1.2 portu partnerskiego lub profili zasilania USB w UsbPort.java, wymagane są te akcesoria ze złączem typu C:
- Ładowarka USB typu C z technologią Power Delivery (PD)
- Standardowy port wyjściowy (SDP) zgodny ze standardem USB Battery Charging 1.2 (BC 1.2). Te porty mogą dostarczać do testowanego urządzenia maksymalnie 500 mA lub 900 mA i zwykle znajdują się na portach USB zewnętrznych hubów.
- Port ładowania USB BC 1.2 (CDP). Te porty mogą dostarczać do DUT prąd o natężeniu 1,5 A i dane. Port typu C na laptopie lub komputerze prawdopodobnie jest portem CDP.
- Dedykowane gniazdo ładowania USB BC 1.2 (DCP). Te porty mogą dostarczać do testowanego urządzenia prąd o natężeniu 1,5 A bez przesyłania danych. Ładowarka USB typu C PD na tej liście prawdopodobnie jest ładowarką DCP.
Połącz urządzenie DUT za pomocą
adbprzez Wi-Fi. Szczegółowe informacje o konfiguracji znajdziesz w artykule Łączenie się z urządzeniem przez Wi-Fi.Odłącz urządzenie od wszystkich połączeń USB. Test nie powiedzie się, jeśli urządzenie jest podłączone do dowolnego hosta USB lub akcesorium podczas wykonywania polecenia testowego.
Uruchom to polecenie testowe:
run cts-v-host -m CtsUsbTypecTestCases
Po zakończeniu testów wyniki pojawią się w aplikacji CTS-V w sekcji Testy po stronie hosta, jak pokazano na tych ilustracjach:
Rysunek 6. Testy USB po stronie hosta w aplikacji CTS-V.
Rysunek 7. Pakiet CtsUsbTypecTestCases w aplikacji CTS-V USB po stronie hosta.
Rozwiązywanie problemów z testami na wielu urządzeniach
W tej sekcji znajdziesz informacje, które pomogą Ci rozwiązać typowe problemy.
Nie udało się uzyskać numeru telefonu podczas testu CtsTelecomTest
Jeśli pojawi się komunikat o błędzie Failed to get phone number for <serial>, wykonaj te czynności:
Sprawdź, czy na każdym DUT jest zainstalowana karta SIM.
Jeśli błąd będzie się powtarzał, karty SIM mogą nie obsługiwać automatycznego pobierania numeru. W takim przypadku musisz wyraźnie podać numery telefonów w poleceniu.
Na przykład w przypadku DUT 1 (numer seryjny
17011FDEE0002N, numer telefonu555-0000) i DUT 2 (numer seryjnyR3CN90YNAR, numer telefonu555-1111) do poleceniarun cts-v-hostdodaj te argumenty:--module-arg CtsTelecomTest:dut_serial:17011FDEE0002N \ --module-arg CtsTelecomTest:dut_phone_number:555-0000 \ --module-arg CtsTelecomTest:ref_phone_number:555-1111
Brak odpowiedzi z serwera podczas testu CtsMultiDeviceGenericRangingAccuracyTests
Jeśli pojawi się ten komunikat o błędzie, aplikacja testowa może zostać zamrożona lub zamknięta przez proces zarządzania działający w tle, który jest specyficzny dla danego producenta OEM i występuje na niektórych urządzeniach:
mobly.snippet.errors.ProtocolError: <AndroidDevice|Initiator> No response from server. Check the device logcat for crashes.
Aby rozwiązać ten problem, wyłącz ograniczenia dotyczące działania w tle lub dodaj do listy dozwolonych te pakiety:
| Pakiet | Wyświetlana nazwa |
|---|---|
com.google.snippet.uwb |
CtsUwbSnippetApp |
com.google.snippet.ranging |
CtsRangingSnippetApp |
com.google.snippet.bluetooth |
CtsBluetoothMultiDeviceSnippetApp |
com.google.android.mobly.snippet.bundled |
androidx.multidex.MultDexApplication |
Rozwiązywanie problemu z brakiem odpowiedzi na żądanie GetFirmwareVersion podczas testów NFC
Jeśli podczas przeprowadzania testów na wielu urządzeniach pojawi się komunikat verify_firmware_version RuntimeError: No response
for GetFirmwareVersion, oznacza to, że testy nie mają dostępu do płytki NFC PN532.
Aby rozwiązać ten problem, zidentyfikuj ścieżkę szeregową używaną przez płytkę NFC PN532 na hoście, np. dev/ttyUSB1, a następnie ręcznie określ ją za pomocą argumentu --module-arg w konsoli:
run cts-v-host -m CtsNfcHceMultiDeviceTestCases --module-arg CtsNfcHceMultiDeviceTestCases:pn532_serial_path:/dev/ttyUSB1
Rozwiązywanie problemów z komunikatem o błędzie „Transakcja nie powiodła się” podczas testów NFC
Jeśli w przypadku wszystkich testów NFC otrzymasz komunikat Transaction failed, check device logs for more
information., prawdopodobnie oznacza to, że chip NFC testowanego urządzenia nie wykrywa modułu PN532.
Jeśli do hosta jest podłączonych kilka urządzeń, a na niektórych z nich nie ma czytnika PN532, może zostać wybrane nieprawidłowe urządzenie DUT. Więcej informacji znajdziesz w artykule Konfigurowanie testów NFC.
Aby rozwiązać ten problem, wykonaj jedną z tych czynności:
W poleceniu testowym po stronie hosta ustaw prawidłowy numer seryjny testowanego urządzenia za pomocą flagi
-s.Odłącz od hosta wszystkie urządzenia inne niż DUT.
Test CDM test_permissions_sync jest ignorowany
Jeśli test jest przeprowadzany na urządzeniach, na których nie można debugować aplikacji, sprawdź, czy nie podlegasz zwolnieniu. W przeciwnym razie sprawdź, czy oba urządzenia spełniają wymagania wstępne.