На этой странице вы найдете инструкции по настройке и запуску тестов CTS Verifier (CTS-V) на стороне хоста для Android 16 QPR2 и Android 17. Существует два типа тестов на стороне хоста: тесты для нескольких устройств (появились до Android 17) и интерактивные тесты (появились в Android 17).
- Тесты для нескольких устройств полностью автоматизированы.
- Интерактивные тесты полуавтоматические. Они требуют от вас выполнения некоторых действий вручную на тестируемом устройстве.
Помимо новых интерактивных тестов, тесты точности ручного определения расстояния и тесты телекоммуникаций теперь являются тестами для нескольких устройств на стороне хоста, а также требуются тесты подключения по Wi-Fi.
Как настроить тесты на стороне хоста
Чтобы настроить тесты на стороне хоста, выполните следующие действия (для тестов на нескольких устройствах требуется дополнительная настройка):
Убедитесь, что ваш компьютер соответствует системным требованиям к операционной системе для CTS.
Выполните шаги 2 и 5 из раздела Установка ПО для ПК, чтобы установить и проверить, правильно ли установлены adb, AAPT2 и Python на вашем ПК.
Версия Python для ПК должна быть 3.11 или выше. Чтобы узнать версию Python, выполните команду
python3 --version. Если версия ниже 3.11, установите последнюю официальную версию Python. Подробную информацию можно найти в разделе о скачивании на сайтеpython.org.Для некоторых тестов на хосте должен быть установлен модуль Python
venv. В системах Debian и Ubuntu этот модуль может быть не установлен по умолчанию. Чтобы определить, есть ли в версии Python для компьютеров модульvenv, выполните командуpython3 -m venv venv. Если команда не выполнена, появится сообщение об ошибке. Следуйте инструкциям, чтобы установить пакетpython3.x-venv.
Если вы запускаете только интерактивные тесты на стороне хоста, перейдите к разделу Запуск тестов на стороне хоста. Если вы хотите запустить тестирование на нескольких устройствах, перейдите к разделу Как настроить тестирование на нескольких устройствах на стороне хоста.
Как настроить тестирование нескольких устройств на стороне хоста
Чтобы настроить тесты для нескольких устройств на стороне хоста, выполните следующие действия:
Убедитесь, что ваш компьютер соответствует системным требованиям к операционной системе для CTS.
Выполните шаги 2 и 5 из раздела Установка ПО для ПК, чтобы установить и проверить, правильно ли установлены adb, AAPT2 и Python на вашем ПК.
Версия Python для ПК должна быть 3.11 или выше. Чтобы узнать версию Python, выполните команду
python3 --version. Если версия ниже 3.11, установите последнюю официальную версию Python. Подробную информацию можно найти в разделе о скачивании на сайтеpython.org.- Для некоторых тестов на хосте должен быть установлен модуль Python
venv. В системах Debian и Ubuntu этот модуль может быть не установлен по умолчанию. Чтобы определить, есть ли в версии Python для компьютеров модульvenv, выполните командуpython3 -m venv venv. Если команда не выполнена, появится сообщение об ошибке. Следуйте инструкциям, чтобы установить пакетpython3.x-venv.
- Для некоторых тестов на хосте должен быть установлен модуль Python
Подготовьте два одинаковых тестируемых устройства с настроенным CTS-V.
- Подробнее о том, как настроить тестируемое устройство…
- Подробнее о настройке CTS-V…
Перейдите к разделу с инструкциями для нужного типа тестирования:
- Подробнее о том, как настроить тесты NFC…
- Подробнее о том, как настроить проверку подключения к точке доступа Wi-Fi…
- Чтобы узнать, как подготовиться к тестированию точности определения расстояния, перейдите в раздел Подготовка к тестированию точности определения расстояния.
- Чтобы протестировать модуль CDM, перейдите к разделу Как настроить стандартные тесты с двумя устройствами, а затем – к разделу Как настроить тесты CDM.
Если вашего теста нет в этом списке, перейдите к разделу Как настроить стандартные тесты с двумя устройствами.
Как настроить тестирование NFC
Для тестирования NFC используется одно тестируемое устройство и один NFC-чип PN532.
Чтобы настроить тестирование NFC:
- Купите NFC-чип PN532. Мы рекомендуем All-In-One PN532.
- На тестируемом устройстве откройте приложение Настройки.
- Включите NFC.
Расположите NFC-чип:
Для телефонов расположите NFC-считыватель тестируемого устройства, как показано на рисунке 1:

Рисунок 1. Расположение NFC-чипа.
Если у вас другое устройство, поднесите чип к его NFC-антенне.
Подключите NFC-чип PN532 к тестовой рабочей станции с помощью USB-кабеля.
Как настроить тесты подключения к точке доступа Wi-Fi
Тесты подключения к точке доступа Wi-Fi (ТД) (CtsWifiConnectionTests) проверяют подключение между тестируемым устройством и ТД. Настроить такие тесты можно двумя способами:
- Вариант 1. Используйте существующую сеть Wi-Fi, настроенную для CTS-V.
- Вариант 2. Настройте программируемую точку доступа.
Для Android 17 мы настоятельно рекомендуем вариант 2, но он не обязателен. Оба варианта описаны в следующих двух разделах.
Вариант 1. Использовать существующую сеть Wi-Fi, настроенную для CTS-V
Для варианта 1 требуется одно тестируемое устройство Android в зоне покрытия сети Wi-Fi. Если тестируемое устройство находится в экранированном боксе и не может подключиться к сети Wi-Fi, извлеките его из бокса.
Вариант 2. Настройка программируемой точки доступа
Чтобы настроить программируемую точку доступа для тестирования подключения к Wi-Fi:
Купите и настройте точку доступа Banana Pi R3. Информацию о покупке и настройке точки доступа Banana Pi R3 можно найти в статье Как настроить точку доступа Banana Pi BPI-R3.
Если у вас нет экранированного бокса, рекомендуем использовать JTP-SR101. Чтобы купить эту коробку, используйте следующую информацию:
Dong Guan Zheng Sheng Electronics Technology Co., LTD
Bohui Industrial Park, Panlong Road, Liaobu Town, Dongguan City, Guangdong Province, China
Контактное лицо: Форест Пан (Forest Pan)
Адрес электронной почты: forest.pan@jtpmak.cn.
Телефон (Китай): +86 18676993556
Подключите тестируемое устройство и ТД к хосту и поместите их в радиочастотный экранированный бокс. Расстояние между тестируемым устройством и точкой доступа должно быть не менее 10 см. На рисунке 2 показана эта конфигурация:

Рисунок 2. Тестируемое устройство и точка доступа в экранированном боксе.
Используйте SSH, чтобы убедиться, что точка доступа доступна с хоста.
Как настроить тесты точности определения расстояния
Чтобы настроить тесты точности определения расстояния:
Разместите два одинаковых тестируемых устройства Android на расстоянии 1 м друг от друга на одной высоте в зоне прямой видимости задними панелями друг к другу. На рисунке 3 показана такая ориентация:

Рисунок 3. Ориентация устройства.
Подключите оба устройства к компьютеру с помощью USB-кабелей.
Как настроить стандартные тесты с двумя устройствами
Для стандартной настройки с двумя устройствами:
Расположите два одинаковых тестируемых устройства Android на расстоянии примерно 20 см друг от друга.
Настоятельно рекомендуется поместить оба устройства в экранированный бокс. Экранирующий бокс повышает стабильность тестирования и упрощает отладку сбоев.
Для тестирования телекоммуникационных функций в каждое тестируемое устройство должна быть вставлена SIM-карта и на нем должен быть сигнал сотовой связи. Если тестируемые устройства находятся в экранированном боксе, сигнал сотовой связи должен поступать в него. В противном случае извлеките устройства из экранирующей коробки.
При необходимости настройте сниффер OTA для отладки Wi-Fi.
Как настроить тестирование CDM
Поведение тестового примера test_permissions_sync зависит от типа сборки устройств, на которых выполняется тест. OEM-производителям необходимо тестировать как отладочные (userdebug или eng), так и неотладочные (user) сборки. Тесты должны быть пройдены успешно.
Освобождение
В пункте CDD, касающемся реализации API для синхронизации разрешений, указано только то, что он должен обеспечивать успешную передачу данных между устройствами по защищенному каналу. Поскольку реализация защищенного канала не является требованием CDD, этот тест можно пропустить в сборках, не предназначенных для отладки (пользовательских), но только если вы хотите отказаться от поддержки синхронизации разрешений CDM.
Тесты должны проходить на отладочных сборках без исключений.
Что нужно для тестирования неотладочных сборок
Если вы не освобождены от этого требования, убедитесь, что вы соответствуете следующим условиям.
Защищенный канал использует AVF (AttestationVerificationFramework) для проверки надежности аппаратного обеспечения. Сгенерированные обеими сторонами аттестации содержат информацию, которая позволяет убедиться, что в системе не было несанкционированных изменений. В процессе проверки AVF
проверяет следующие состояния:
Устройство подключено к интернету.
На устройстве используется проверка при запуске, а сборка подписана ключом выпуска (не ключом разработчика).
Загрузчик операционной системы на устройстве заблокирован. Подробнее о блокировке загрузчика операционной системы…
Уровни исправлений ОС, ключа загрузки и ключа поставщика не старше 12 месяцев. Не используйте сборку, выпущенную более года назад.
Аттестация устройства подтверждается одним из корневых сертификатов, одобренных поставщиком. Укажите доверенные корневые сертификаты в оверлее ресурсов
vendor_required_attestation_certificates.xml.
Как запустить тесты на стороне хоста
Для некоторых тестов на нескольких устройствах, например тестов NFC, требуется дополнительная настройка. Если для тестирования требуется дополнительная настройка, каждый тест выполняется отдельно. Если дополнительная настройка не требуется, вы можете запустить тесты в группе.
На тестовом рабочем месте запустите консоль
cts-v-hostиз каталога, в который был распакован ZIP-архив CTS-V../android-cts-verifier/android-cts-v-host/tools/cts-v-host-tradefedВ приложении CTS-V на тестируемом устройстве нажмите Host-side Tests (Тесты на стороне хоста). На рисунке 4 показаны тесты на стороне хоста в приложении CTS-V.
Рисунок 4. Тесты на стороне хоста в приложении CTS-V.
Появится список тестовых модулей для нескольких устройств на стороне хоста.
Чтобы запустить тесты для нескольких устройств, использующие стандартную настройку с двумя устройствами, введите в консоли хоста CTS-V следующую команду:
run cts-v-host-multidevice-defaultРезультаты появятся под каждым тестовым модулем в приложении CTS-V на тестируемом устройстве. Тесты, отмеченные зеленым цветом, пройдены, а красным – нет.
На рисунке 5 показаны примеры результатов тестов CtsCompanionDeviceManager.
Рисунок 5. Результаты тестирования нескольких устройств на стороне хоста в приложении CTS-V.
Чтобы запустить интерактивные тесты, введите в консоли хоста CTS-V следующую команду:
run cts-v-host-interactiveРезультаты появятся под каждым тестовым модулем в приложении CTS-V на тестируемом устройстве. Тесты, отмеченные зеленым цветом, пройдены, а красным – нет.
Для каждого теста, требующего дополнительной настройки, запустите тест отдельно, используя следующую команду:
run cts-v-host -m test_module_nameНапример, чтобы запустить тесты NFC, используйте следующую команду:
run cts-v-host -m CtsNfcHceMultiDeviceTestCasesРезультаты появятся под каждым тестовым модулем в приложении CTS-V на тестируемом устройстве. Тесты, отмеченные зеленым цветом, пройдены, а красным – нет.
Как запустить проверку подключения к точке доступа Wi-Fi
Проверку подключения к точке доступа Wi-Fi можно выполнить двумя способами:
- Вариант 1. Используйте существующую сеть Wi-Fi, настроенную для CTS-V.
- Вариант 2. Настройте программируемую точку доступа.
Вариант 1. Использовать существующую сеть Wi-Fi, настроенную для CTS-V
Чтобы запустить проверку подключения к точке доступа Wi-Fi в существующей сети Wi-Fi:
Измените файл конфигурации тестового стенда (
WifiConnectionTestbed.yaml). Он находится в каталоге, куда распакован CTS-Verifier. Пример:./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yamlЗамените значения полей
wifi_ssidиwifi_passwordна SSID и пароль сети Wi-Fi. На изображении ниже показано, где находятся эти настройки.TestBeds: - Name: WifiConnectionTestbed Controllers: AndroidDevice: '*' TestParams: use_programmable_ap: False wifi_ssid: WIFI-SSID wifi_password: WIFI-PASSWORDВ консоли хоста CTS-V выполните следующую команду:
run cts-v-host -m CtsWifiConnectionTests
Вариант 2. Использование программируемой точки доступа
Чтобы запустить тесты подключения к программируемой точке доступа Wi-Fi:
Измените файл конфигурации тестового стенда (
WifiConnectionTestbed.yaml). Он находится в каталоге, куда распакован CTS-Verifier. Пример:./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yamlИзмените значение
hostnameна IP-адрес ТД в соответствии с локальными настройками SSH. Чтобы узнать IP-адрес, ознакомьтесь с разделом Как узнать IP-адрес точки доступа. Ниже показано, где находится настройкаhostname.TestBeds: - Name: WifiConnectionTestbed Controllers: AndroidDevice: '*' # Specify settings for the AP. OpenWrtDevice: - hostname: AP-IP skip_init_reboot: True TestParams: use_programmable_ap: TrueВ консоли хоста CTS-V выполните следующую команду:
run cts-v-host -m CtsWifiConnectionTests
Как запустить тесты USB на стороне хоста
В Android 17 есть тесты CTS-V для USB на стороне хоста, для которых требуется adb по Wi-Fi.
Для некоторых тестов USB требуется хост CTS-V, чтобы получить доступ к SystemAPI с разрешениями, недоступными обычному приложению CTS-V. Эти тесты выполняются без подключения к компьютеру и требуют использования adb по Wi-Fi.
Если тестируемое устройство поддерживает передачу данных о типе BC 1.2 или профилях питания USB в UsbPort.java, потребуются следующие аксессуары Type-C:
- Зарядное устройство USB Type-C с поддержкой технологии Power Delivery (PD).
- Стандартный нисходящий порт (SDP) USB Battery Charging 1.2 (BC 1.2). Такие порты могут подавать на тестируемое устройство ток силой 500 или 900 мА. Обычно они встречаются на USB-портах внешних концентраторов.
- Нисходящий порт зарядки USB BC 1.2 (CDP). Эти порты могут обеспечивать ток 1,5 А для тестируемого устройства и данных. Порт Type-C на ноутбуке или компьютере, скорее всего, является CDP.
- Выделенный зарядный порт USB BC 1.2. Эти порты могут подавать на тестируемое устройство ток силой 1,5 А без передачи данных. Зарядное устройство USB Type-C PD в этом списке, скорее всего, является DCP.
Подключите тестируемое устройство к сети Wi-Fi с частотой
adb. Подробнее о том, как подключиться к устройству по Wi-Fi…Отключите устройство от всех USB-подключений. Если при запуске команды тестирования устройство подключено к USB-хосту или аксессуару, тест не будет пройден.
Выполните следующую команду:
run cts-v-host -m CtsUsbTypecTestCases
После завершения тестов результаты появятся в приложении CTS-V в разделе Host-side tests (Тесты на стороне хоста), как показано на изображениях ниже.
Рисунок 6. Тесты USB на стороне хоста в приложении CTS-V.
Рисунок 7. Набор тестов CtsUsbTypecTestCases в приложении USB CTS-V на стороне хоста.
Устранение неполадок при тестировании на нескольких устройствах
В этом разделе описаны способы устранения распространенных неполадок.
Не удалось получить номер телефона во время CtsTelecomTest
Если вы видите сообщение об ошибке Failed to get phone number for <serial>, выполните следующие действия:
Убедитесь, что в каждое тестируемое устройство вставлена SIM-карта.
Если ошибка не исчезнет, возможно, SIM-карты не поддерживают автоматическое получение номера. В этом случае вам нужно будет явно указать номера телефонов в команде.
Например, для тестируемого устройства 1 (серийный номер
17011FDEE0002N, номер телефона555-0000) и тестируемого устройства 2 (серийный номерR3CN90YNAR, номер телефона555-1111) добавьте к командеrun cts-v-hostследующие аргументы:--module-arg CtsTelecomTest:dut_serial:17011FDEE0002N \ --module-arg CtsTelecomTest:dut_phone_number:555-0000 \ --module-arg CtsTelecomTest:ref_phone_number:555-1111
Нет ответа от сервера во время CtsMultiDeviceGenericRangingAccuracyTests
Если вы видите сообщение об ошибке ниже, возможно, тестовое приложение было заморожено или закрыто из-за управления фоновыми процессами на определенных устройствах.
mobly.snippet.errors.ProtocolError: <AndroidDevice|Initiator> No response from server. Check the device logcat for crashes.
Чтобы устранить эту проблему, отключите ограничения на работу в фоновом режиме или добавьте в белый список следующие пакеты:
| Пакет | Отображаемое название |
|---|---|
com.google.snippet.uwb |
CtsUwbSnippetApp |
com.google.snippet.ranging |
CtsRangingSnippetApp |
com.google.snippet.bluetooth |
CtsBluetoothMultiDeviceSnippetApp |
com.google.android.mobly.snippet.bundled |
androidx.multidex.MultDexApplication |
Исправлена ошибка, из-за которой во время тестов NFC не поступал ответ на запрос GetFirmwareVersion.
Если при запуске тестов для нескольких устройств вы видите сообщение verify_firmware_version RuntimeError: No response
for GetFirmwareVersion, значит у тестов нет доступа к плате PN532 NFC.
Чтобы устранить эту проблему, определите последовательный путь, используемый платой PN532 NFC на вашем хосте, например dev/ttyUSB1, а затем вручную укажите его с помощью аргумента --module-arg в консоли:
run cts-v-host -m CtsNfcHceMultiDeviceTestCases --module-arg CtsNfcHceMultiDeviceTestCases:pn532_serial_path:/dev/ttyUSB1
Как устранить сообщение об ошибке "Не удалось выполнить транзакцию" при тестировании NFC
Если вы получаете сообщение Transaction failed, check device logs for more
information. для всех отчетов о тестировании NFC, скорее всего, NFC-чип тестируемого устройства не может обнаружить PN532.
Если к хосту подключено несколько устройств и на некоторых из них нет PN532, возможно, выбрано не то тестируемое устройство. Подробнее о том, как настроить тестирование NFC…
Чтобы устранить эту проблему, выполните одно из следующих действий:
Укажите правильный серийный номер тестируемого устройства в команде тестирования на стороне хоста, используя флаг
-s.Отключите от хоста все устройства, кроме тестируемого.
Тестовый пример CDM test_permissions_sync игнорируется.
Если тестирование выполняется на устройствах, не поддерживающих отладку, проверьте, есть ли у вас исключение. Если нет, убедитесь, что оба устройства соответствуют требованиям.