Запустите тесты CTS Verifier на стороне хоста.

На этой странице приведены инструкции по настройке и запуску тестов CTS Verifier (CTS-V) на стороне хоста для Android 16 QPR2 и Android 17. Существует два типа тестов на стороне хоста: многоустройственные тесты (введены до Android 17) и интерактивные тесты (новинка в Android 17):

  • Тестирование на нескольких устройствах — это полностью автоматизированное тестирование.
  • Интерактивные тесты — это полуавтоматические тесты, требующие выполнения некоторых действий вручную на тестируемом устройстве (DUT).

В дополнение к новым интерактивным тестам, мы преобразовали ручные тесты точности измерения расстояния и телекоммуникационных параметров в многоустройственные тесты на стороне хоста, а также теперь требуется проверка подключения к Wi-Fi.

Настройте тесты на стороне хоста.

Выполните следующие шаги для настройки тестов на стороне хоста (для тестов на нескольких устройствах требуется дополнительная настройка):

  1. Убедитесь, что ваш настольный компьютер соответствует системным требованиям CTS.
  2. Выполните шаги 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 .

Если вы запускаете только интерактивные тесты на стороне хоста, перейдите к разделу «Запуск тестов на стороне хоста» . Однако, если вы хотите запустить тесты на нескольких устройствах, перейдите к разделу «Настройка тестов на нескольких устройствах на стороне хоста» .

Настройте тестирование на нескольких устройствах на стороне хоста.

Выполните следующие шаги для настройки многоустройственных тестов на стороне хоста:

  1. Убедитесь, что ваш настольный компьютер соответствует системным требованиям CTS.
  2. Выполните шаги 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 .
  3. Подготовьте два одинаковых тестируемых устройства, на каждом из которых должна быть настроена система CTS-V.

  4. Перейдите в раздел настроек для вашего типа теста:

Если вашего теста нет в этом списке, перейдите к разделу «Настройка стандартных тестов с использованием двух устройств» .

Настройка тестов NFC

Для проведения NFC-тестов используется одно тестируемое устройство и один NFC-чип PN532.

Для настройки тестов NFC:

  1. Приобретите NFC-чип PN532. Мы рекомендуем универсальный чип PN532 .
  2. На тестируемом устройстве перейдите в приложение «Настройки» .
  3. Включить NFC .
  4. Расположите NFC-чип:

    • Для телефонов расположите NFC-считыватель тестируемого устройства, как показано на рисунке 1:

      позиционирование NFC-чипа

      Рисунок 1. Расположение NFC-чипа.

    • Для других типов устройств расположите чип рядом с NFC-антенной устройства.

  5. Подключите NFC-чип PN532 к вашей тестовой рабочей станции с помощью USB-кабеля.

Настройте проверку подключения к точке доступа Wi-Fi.

Тесты подключения точки доступа Wi-Fi ( CtsWifiConnectionTests ) проверяют связь между тестируемым устройством и точкой доступа. Настроить эти тесты можно двумя способами:

  • Вариант 1: Используйте существующую сеть Wi-Fi, которую вы настроили для CTS-V.
  • Вариант 2: Настройка программируемой точки доступа (AP).

Для Android 17 мы настоятельно рекомендуем вариант 2, но он не является обязательным. В следующих двух разделах описан каждый вариант.

Вариант 1: Используйте существующую сеть Wi-Fi, которую вы настроили для CTS-V.

Для варианта 1 требуется одно тестируемое устройство Android в зоне действия сети Wi-Fi. Если тестируемое устройство находится в защитном боксе и не может подключиться к сети Wi-Fi, извлеките его из защитного бокса.

Вариант 2: Настройка программируемой точки доступа.

Для настройки программируемой точки доступа для проверки Wi-Fi-соединения:

  1. Приобретите и настройте точку доступа Banana Pi R3. Информацию о приобретении и настройке точки доступа Banana Pi R3 см. в разделе «Настройка точки доступа Banana Pi BPI-R3» .

  2. Дополнительно: Если у вас нет защитного бокса, мы рекомендуем защитный бокс JTP-SR101. Приобретите этот бокс, используя следующую информацию:

    Dong Guan Zheng Sheng Electronics Technology Co., LTD
    Промышленный парк Бохуэй, улица Панлун, поселок Ляобу, город Дунгуань, провинция Гуандун, Китай.
    Контактное лицо: Форест Пан
    Электронная почта: forest.pan@jtpmak.cn
    Телефон (Китай): +86 18676993556

  3. Подключите тестируемое устройство (DUT) и точку доступа (AP) к хосту и поместите их в экранированный от радиочастот корпус. Расстояние между DUT и AP должно составлять не менее 10 см. На рисунке 2 показана следующая конфигурация:

    Тестируемое устройство и точка доступа в экранированном корпусе

    Рисунок 2. Исследуемое устройство (DUT) и точка доступа (AP) в экранированном корпусе.

  4. Используйте SSH для проверки доступности точки доступа с хоста.

Провести испытания на точность определения дальности.

Для настройки тестов на точность измерения расстояния:

  1. Разместите два одинаковых тестируемых устройства Android на расстоянии 1 метра друг от друга, на одной высоте, в прямой видимости, так чтобы задние панели каждого устройства были обращены друг к другу. На рисунке 3 показана такая ориентация:

    Ориентация устройства

    Рисунок 3. Ориентация устройства.

  2. Подключите оба устройства к настольному компьютеру с помощью USB-кабелей.

Настройте стандартные тесты с использованием двух устройств.

Для стандартной конфигурации с двумя устройствами:

  1. Разместите два одинаковых тестируемых устройства Android на расстоянии примерно 20 см друг от друга.
  2. Настоятельно рекомендуется: поместите оба устройства в защитный корпус. Защитный корпус повышает стабильность тестирования и упрощает отладку сбоев.

  3. Для телекоммуникационных тестов каждое тестируемое устройство должно иметь SIM-карту и сотовый сигнал. Если тестируемые устройства находятся в экранированном корпусе, сотовый сигнал должен подаваться в корпус. В противном случае, устройства следует вынуть из экранированного корпуса.

  4. Дополнительно: Настройте анализатор беспроводного соединения (OTA sniffer) для отладки Wi-Fi.

Настройка тестов CDM

Поведение тестового случая test_permissions_sync() различается в зависимости от типа сборки устройств, на которых выполняется тест. Крайне важно, чтобы производители оборудования тестировали как отлаживаемые (userdebug или eng), так и неотлаживаемые (user) сборки, и чтобы тесты проходили успешно для обеих.

Освобождение от налогов

В соответствии с пунктом CDD для реализации API синхронизации разрешений требуется лишь возможность успешной передачи данных между устройствами по защищенному каналу. Поскольку реализация защищенного канала не является обязательным требованием CDD, этот тест можно пропустить в сборках, не предназначенных для отладки (пользовательских), но только если вы хотите отказаться от поддержки функции синхронизации разрешений CDM.

Тесты должны проходить без исключений на отлаживаемых сборках.

Предварительные условия для тестирования на сборках, не предназначенных для отладки.

Если вы не освобождены от этого требования, убедитесь, что вы соответствуете следующим предварительным условиям.

Защищенный канал использует AVF ( AttestationVerificationFramework ) для проверки надежности оборудования. Аттестации, сгенерированные обеими сторонами, содержат ряд сведений о них самих, подтверждающих отсутствие несанкционированных изменений в их системе. В процессе проверки AVF проверяет следующие состояния:

  • Устройство имеет доступ к интернету.
  • Устройство использует проверенную загрузку, и сборка должна быть подписана ключом выпуска, а не ключом разработчика.
  • Устройство заблокировано загрузчиком. Подробные инструкции см. в разделе «Блокировка загрузчика».
  • Уровни обновлений ОС, загрузочного ключа и ключа от производителя должны быть в пределах 12 месяцев. Не используйте сборку старше года.
  • Подтверждение подлинности устройства осуществляется с помощью одного из корневых сертификатов, одобренных поставщиком. Укажите ваши доверенные корневые сертификаты в ресурсе vendor_required_attestation_certificates.xml .

Выполните тесты на стороне хоста.

Некоторые тесты, запускаемые на нескольких устройствах, например, тесты NFC, требуют дополнительной настройки. Для тестов, требующих дополнительной настройки, каждый тест запускается отдельно. Для тестов, не требующих дополнительной настройки, их можно запускать в группе.

  1. На тестовой рабочей станции запустите консоль cts-v-host из каталога, куда был распакован ZIP-архив CTS-V:

    ./android-cts-verifier/android-cts-v-host/tools/cts-v-host-tradefed
    
  2. В приложении CTS-V на тестируемом устройстве нажмите «Тесты на стороне хоста» . На рисунке 4 показаны тесты на стороне хоста в приложении CTS-V:

    Тестирование на стороне хоста в приложении CTS-V

    Рисунок 4. Тесты на стороне хоста в приложении CTS-V.

    Отображается список тестовых модулей для тестирования нескольких устройств на стороне хоста.

  3. В консоли хоста CTS-V используйте следующую команду для запуска тестов с несколькими устройствами, использующих стандартную конфигурацию из двух устройств:

    run cts-v-host-multidevice-default
    

    Результаты отображаются под каждым тестовым модулем в приложении CTS-V на тестируемом устройстве. Тесты, отмеченные зеленым цветом, пройдены успешно, тесты, отмеченные красным, — не пройдены.

    На рисунке 5 показаны примеры результатов тестов CtsCompanionDeviceManager:

    Результаты тестирования на нескольких устройствах на стороне хоста в приложении CTS-V

    Рисунок 5. Результаты тестирования на нескольких устройствах на стороне хоста в приложении CTS-V.

  4. В консоли хоста CTS-V используйте следующую команду для запуска интерактивных тестов:

    run cts-v-host-interactive
    

    Результаты отображаются под каждым тестовым модулем в приложении CTS-V на тестируемом устройстве. Тесты, отмеченные зеленым цветом, пройдены успешно, тесты, отмеченные красным, — не пройдены.

  5. Для каждого теста, требующего дополнительной настройки, запустите его отдельно, используя следующую команду:

    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:

  1. Отредактируйте файл конфигурации тестовой среды ( WifiConnectionTestbed.yaml ). Этот файл находится в каталоге, куда распакован CTS-Verifier. Например:

    ./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yaml
    
  2. Измените значения полей 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
    
  3. В консоли хоста CTS-V выполните следующую команду:

    run cts-v-host -m CtsWifiConnectionTests
    

Вариант 2: Использование программируемой точки доступа.

Для запуска тестов подключения Wi-Fi AP на программируемой точке доступа:

  1. Отредактируйте файл конфигурации тестовой среды ( WifiConnectionTestbed.yaml ). Этот файл находится в каталоге, куда распакован CTS-Verifier. Например:

    ./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yaml
    
  2. Измените значение параметра 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
    
  3. В консоли хоста CTS-V выполните следующую команду:

    run cts-v-host -m CtsWifiConnectionTests
    

Выполните тесты на стороне хоста USB.

В Android 17 включены тесты USB CTS-V на стороне хоста, для запуска которых требуется 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).
  • USB-порт для зарядки аккумуляторов стандарта BC 1.2 (SDP). Эти порты ограничены подачей тока на тестируемое устройство в размере 500 мА или 900 мА и обычно встречаются на USB-портах внешних концентраторов.
  • Порт USB BC 1.2 для зарядки (CDP). Эти порты могут подавать ток 1,5 А на тестируемое устройство и передавать данные. Порт Type-C на ноутбуке или компьютере, скорее всего, будет портом CDP.
  • Выделенный зарядный порт USB BC 1.2 (DCP). Эти порты могут подавать на тестируемое устройство ток 1,5 А без передачи данных. Зарядное устройство USB Type-C PD в этом списке, скорее всего, является DCP.
  1. Подключите тестируемое устройство (DUT) через adb по Wi-Fi. Подробную информацию о настройке см. в разделе «Подключение к устройству по Wi-Fi» .

  2. Физически отсоедините устройство от всех USB-подключений. Тест завершится неудачей, если устройство подключено к какому-либо USB-хосту или аксессуару во время выполнения команды теста.

  3. Выполните следующую команду тестирования:

    run cts-v-host -m CtsUsbTypecTestCases
    

После завершения тестов результаты отображаются в приложении CTS-V в разделе «Тесты на стороне хоста» , как показано на следующих рисунках:

Тестирование USB на стороне хоста в приложении CTS-V

Рисунок 6. Тестирование USB на стороне хоста в приложении CTS-V.

Набор тестов CtsUsbTypecTestCases в приложении USB CTS-V на стороне хоста

Рисунок 7. Набор тестовых примеров CtsUsbTypecTestCases в приложении USB CTS-V на стороне хоста.

Устранение неполадок при тестировании нескольких устройств

В этом разделе вы найдете информацию по устранению распространенных проблем.

Не удалось получить номер телефона во время тестирования CtsTelecomTest.

Если вы получили сообщение об ошибке " Failed to get phone number for <serial> , выполните следующие действия:

  1. Убедитесь, что в каждом тестируемом устройстве установлена ​​SIM-карта.

  2. Если ошибка сохраняется, возможно, 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-тестов» .

Для решения этой проблемы выполните одно из следующих действий:

  • Укажите правильный последовательный порт тестируемого устройства (DUT) в команде тестирования на стороне хоста, используя флаг -s .

  • Отключите от хоста все устройства, кроме тестируемых.

В тестовом случае CDM test_permissions_sync игнорируется.

Если тестирование проводится на устройствах, не подлежащих отладке, проверьте, не освобождены ли вы от этого требования. В противном случае убедитесь, что оба устройства соответствуют предварительным условиям .