Настройте автоматическое тестирование CTS

Прежде чем запускать автоматизированные тесты CTS, подготовьте физическую среду, настройте рабочее место и сконфигурируйте тестируемое устройство.

Создание физической среды

Для некоторых тестов CTS требуется установка внешних устройств рядом с тестируемым устройством. Чтобы настроить физическую среду:

  1. (необязательно) Если ваше тестируемое устройство поддерживает Bluetooth LE, разместите не менее трех маяков Bluetooth LE на расстоянии не более 5 метров от тестируемого устройства для тестирования сканирования Bluetooth LE. Дополнительно:

    • Маяки не требуют настройки и не излучают ничего конкретного.
    • В качестве маяков могут использоваться любые устройства, включая iBeacon, Eddystone или даже устройства, имитирующие BLE-маяки.
  2. Расположите телефон перед объектом съемки, например, стеной или потолком, на расстоянии, равном минимальному расстоянию фокусировки тестируемого устройства. Дополнительно:

    • Освещение в месте проведения эксперимента должно быть достаточным, чтобы тестируемые датчики могли достигать и поддерживать максимально заданное целевое количество кадров в секунду (FPS), указанное в CONTROL_AE_TARGET_FPS_RANGE .
    • Данная настройка применяется ко всем датчикам камер, о которых сообщает getCameraIdList , поскольку тест перебирает перечисленные устройства и измеряет производительность каждого из них по отдельности.
    • Если тестируемое устройство поддерживает внешние камеры, например, USB-веб-камеры, подключите внешнюю камеру при запуске CTS. В противном случае тесты CTS завершатся неудачей.
  3. (необязательно) Если ваше тестируемое устройство поддерживает глобальную систему позиционирования (GPS) или другую глобальную навигационную спутниковую систему (GNSS), подайте на него сигнал GNSS с подходящим уровнем сигнала для приема и расчета местоположения. Дополнительно:

    • GPS-приемник должен соответствовать стандарту ICD-GPS-200C.
    • Сигнал GNSS может быть любого типа, включая сигнал от симулятора спутника или ретранслятора наружных сигналов.
    • Вы можете разместить тестируемое устройство рядом с окном, чтобы оно могло напрямую принимать достаточный сигнал GNSS со спутника.
  4. Убедитесь, что ваша сеть Wi-Fi поддерживает IPv4 и IPv6, имеет подключение к интернету с DNS для IPv4 и IPv6, поддерживает IP-многоадресную рассылку и может рассматривать тестируемое устройство как изолированный клиент .

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

  5. Убедитесь, что на Wi-Fi-интерфейсе тестируемого устройства установлены флаги UP , BROADCAST и MULTICAST .

  6. Убедитесь, что интерфейсу Wi-Fi назначены адреса IPv4 и IPv6. Чтобы проверить свойства интерфейса Wi-Fi, выполните команду adb shell ifconfig .

  7. (необязательно) Если ваше тестируемое устройство поддерживает Wi-Fi STA или одновременную работу STA , настройте как минимум две сети Wi-Fi. Эти сети Wi-Fi должны работать в разных диапазонах с разными SSID или в одном и том же SSID с разными BSSID.

  8. (необязательно) Если ваше тестируемое устройство поддерживает измерение времени отклика Wi-Fi (RTT) , настройте устройство, поддерживающее Wi-Fi RTT:

    1. Разместите устройство Wi-Fi RTT на расстоянии не более 12 метров от тестируемого устройства.
    2. Включите устройство Wi-Fi RTT.

    Вот два рекомендуемых устройства, поддерживающих Wi-Fi RTT: - Google Wifi - точка доступа fitlet2 от Compulab (настроена на полосу пропускания 40 МГц на частоте 5 ГГц).

Настройте свой настольный компьютер

Перед запуском автоматизированных тестов CTS убедитесь, что ваш настольный компьютер соответствует требованиям к оборудованию и операционной системе, а также на нем установлено необходимое программное обеспечение, как описано в следующих разделах.

Соответствует требованиям к оборудованию

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

  • 64-битная система x86

  • Необходимо как минимум 256 ГБ свободного дискового пространства для размещения увеличенного количества тестовых случаев CTS и увеличения резервирования места в куче Java в Tradefed.

  • Минимум 32 ГБ оперативной памяти.

Соответствует требованиям операционной системы

  • На вашей машине для разработки должна быть установлена ​​64-битная версия дистрибутива Linux с библиотекой GNU C (glibc) 2.17 или выше.

  • Для корректного определения пути системой CTS необходимо установить язык операционной системы на «английский».

Установите программное обеспечение для настольных компьютеров.

Для установки соответствующего программного обеспечения для CTS на настольный компьютер:

  1. Установите пакет FFmpeg версии 5.1.3 или выше.

  2. Установите последние версии Android Debug Bridge (adb) и Android Asset Packaging Tool (AAPT2) и добавьте расположение этих инструментов в системный путь вашего компьютера:

    1. Для установки инструмента командной строки sdkmanager следуйте инструкциям в начале документации по SDK Manager . Ссылка для загрузки инструментов командной строки находится в разделе « Только инструменты командной строки» внизу страницы загрузки Android Studio .
    2. Обновите системный путь, указав в нем расположение недавно установленного sdkmanager .
    3. С помощью sdkmanager установите последние версии пакетов platform-tools и build-tools . Эти пакеты содержат adb и AAPT2. Информацию об установке пакетов см. в разделе «Установка пакетов» .
    4. Обновите путь, указав в нем расположение недавно установленных инструментов adb и AAPT2.
    5. Убедитесь, что adb и AAPT2 добавлены в переменную PATH.
  3. Установите соответствующую версию Java Development Kit (JDK) :

  4. (необязательно) Для Android 13 и 14 установите virtualenv . Инструмент virtualenv необходим для тестирования на нескольких устройствах.

  5. Чтобы убедиться, что Python установлен, введите команду python3 . Должны отобразиться версия и дата Python, что указывает на правильную установку программы.

  6. Загрузите и откройте пакеты CTS из раздела «Загрузки Compatibility Test Suite» , соответствующие версии Android вашего устройства и всем поддерживаемым вашим устройством двоичным интерфейсам приложений (ABI).

  7. Загрузите и откройте последнюю версию медиафайлов CTS . Медиафайлы включают видеоклипы из Big Buck Bunny , авторские права на которые принадлежат Blender Foundation и распространяются по лицензии Creative Commons Attribution 3.0 .

  8. (необязательно) При первом запуске CTS происходит динамическая загрузка некоторых файлов CTS, связанных с основной веткой. В зависимости от скорости вашего интернет-соединения, эта загрузка может увеличить время работы CTS на 10 минут и более.

    Чтобы избежать дополнительного времени выполнения CTS, вы можете загрузить файлы CTS, относящиеся к основной ветке, перед запуском CTS. Информацию о загрузке файлов CTS, относящихся к основной ветке, см. в разделе «Загрузка файлов CTS, относящихся к основной ветке» .

Подготовьте тестируемое устройство

После настройки настольного компьютера необходимо настроить и сконфигурировать тестируемое устройство (DUT).

Настройте тестируемое устройство (DUT).

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

  1. Убедитесь, что тестируемое устройство работает на образе системы, основанном на заведомо совместимой пользовательской сборке (Android 4.0 или выше), указанной в разделе «Кодовые имена, теги и номера сборок» , и использует вариант user сборки. Дополнительную информацию о вариантах сборки см. в разделе «Выбор целевого устройства» .

  2. Если на тестируемом устройстве установлена ​​версия Android 13 или выше, убедитесь, что в параметре ro.product.first_api_level задан уровень API, с которым устройство было выпущено на рынок. Чтобы установить это значение, внесите следующие изменения в файл device.mk :

    PRODUCT_SHIPPING_API_LEVEL := 21
    

    Некоторые требования CTS зависят от версии программного обеспечения, с которой устройство изначально поставлялось. Например, устройства, изначально поставляемые с более ранними версиями, могут быть исключены из системных требований, применяемых к устройствам, поставляемым с более поздними версиями. Допустимые значения уровня API см. в разделе «Кодовые имена, теги и номера сборок» . Дополнительную информацию о ro.product.first_api_level см. в разделе «Уровень API поставщика» .

    Для Android 10 и более ранних версий см. раздел «Настройка CTS (AOSP 10 и более ранних версий)» .

  3. Если ваше устройство поддерживает управление пакетами APEX:

    1. Загрузите пакет APEX shim, соответствующий вашей конкретной версии Android и архитектуре оборудования. В таблице пакетов shim в левой части экрана приведены ссылки для загрузки соответствующего пакета.
    2. Скопируйте загруженный пакет в /system/apex .
    3. Переименуйте файл в com.android.apex.cts.shim.apex .
  4. Если ваше устройство не поддерживает управление пакетами APEX:

    1. Загрузите пакеты APEX shim, соответствующие вашей конкретной версии Android и архитектуре оборудования. В таблице пакетов shim в двух правых столбцах приведены ссылки на пакеты для загрузки.
    2. Скопируйте файл CtsShim.apk в папку /system/app/
    3. Переименуйте файл CtsShim.apk в CtsShimPrebuilt.apk
    4. Скопируйте файл CtsShimPriv.apk в папку /system/priv-app/
    5. Переименуйте файл CtsShimPriv.apk в CtsShimPrivPrebuilt.apk
  5. Если ваше устройство сообщает о наличии более одного защищенного элемента:

    1. Скачать google-cardlet.cap .
    2. Скопируйте загруженный файл в папку /data/uicc/cardlets/ .
  6. Если ваше устройство сообщает о наличии более одного защищенного элемента, установите пример апплета во встроенный защищенный элемент (eSE) тестируемого устройства или в SIM-карту, используемую тестируемым устройством. Для получения дополнительной информации см. тест CTS для защищенного элемента .

  7. Если ваше устройство не имеет встроенного экрана, подключите к нему экран.

  8. Если устройство имеет слот для карты памяти, вставьте пустую SD-карту. Используйте SD-карту, поддерживающую шину сверхвысокой скорости (UHS) с емкостью SDHC или SDXC, или карту со скоростным классом 10 или выше, чтобы гарантировать прохождение теста CTS.

  9. Если устройство имеет слоты для SIM-карт, вставьте активированную SIM-карту в каждый слот. Если устройство поддерживает SMS, каждая SIM-карта должна иметь собственное поле для номера. Для устройств под управлением Android 12 или выше все SIM-карты должны поддерживать хранение сокращенных номеров набора (ADN). GSM и USIM-карты со специальным файлом для телекоммуникаций (DF Telecom ) удовлетворяют этому требованию.

  10. Убедитесь, что ваше устройство оснащено SIM-картой с правами оператора CTS, соответствующими требованиям, указанным в разделе «Подготовка UICC» .

Настройте тестируемое устройство (DUT).

Выполните следующие шаги, чтобы настроить ваше тестируемое устройство для работы с CTS.

На тестируемом устройстве:

  1. Сброс настроек устройства до заводских.

  2. Установите язык устройства на английский (США) .

  3. Если устройство поддерживает настройку шрифтов по умолчанию, убедитесь, что в качестве семейства шрифтов без засечек по умолчанию установлен Roboto .

  4. Если устройство оснащено GPS, Wi-Fi или мобильной сетью, включите функцию определения местоположения.

  5. Подключитесь к сети Wi-Fi, поддерживающей IPv6, способной рассматривать тестируемое устройство как изолированный клиент и имеющей подключение к интернету. Пояснения к изолированным клиентам см. в разделе «Настройка физической среды» .

  6. Убедитесь, что не установлен графический ключ или пароль.

  7. Включить отладку по USB:

    1. Перейдите в «Настройки» > «О телефоне» и семь раз нажмите на «Номер сборки» . В категории «Системные настройки» появится раздел « Параметры разработчика» .

    2. Нажмите «Отладка по USB» .

    Чтобы включить отладку по USB на Android 10 или более ранних версиях, см. раздел «Настройка CTS (AOSP 10 или более ранних)» .

  8. Установите время в 12-часовом формате.

  9. Включите параметры разработчика > Не засыпайте .

  10. Отключить проверку USB-накопителя:

    1. Перейдите в раздел «Параметры разработчика» .

    2. Нажмите «Проверить приложения через USB» .

  11. В Android 13 и более поздних версиях включите имитацию модема:

    1. Перейдите в раздел «Параметры разработчика» .

    2. Нажмите «Разрешить имитацию модема» .

    Эта настройка необходима для проведения определенных телефонных тестов.

На настольном компьютере:

  1. Запустите браузер и закройте все экраны запуска или настройки.

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

  3. Если система запросит подтверждение ключа RSA, разрешающего отладку через этот компьютер, нажмите « Разрешить отладку по USB» .

  4. Установите шрифт Roboto2 как шрифт без засечек, используя доступную для пользователя (не скрытую) настройку.

  5. Скопируйте медиафайлы CTS на тестируемое устройство:

    1. Перейдите ( cd ) в папку, куда были загружены и распакованы медиафайлы.
    2. Измените права доступа к файлу:

      chmod u+x copy_media.sh
      
    3. Скопируйте файлы:

      • Чтобы скопировать видеоклипы с разрешением до 720x480, выполните следующую команду:

        ./copy_media.sh 720x480
      • Если вы не уверены в максимальном разрешении, скопируйте все файлы:

        ./copy_media.sh all
      • Если тестируемых устройств несколько, добавьте в конец опцию последовательного порта ( -s ) для конкретного устройства. Например, чтобы скопировать изображение размером до 720x480 на устройство с последовательным портом 1234567, выполните:

        ./copy_media.sh 720x480 -s 1234567

Загрузите файлы CTS, относящиеся к основной ветке.

Чтобы загрузить файлы CTS, относящиеся к основной ветке:

  1. Чтобы узнать уровень Android API на устройстве, выполните следующую команду:

    adb shell getprop ro.build.version.sdk
    
  2. Следуйте инструкциям в скрипте download_mcts.sh , чтобы загрузить файлы Mainline CTS.

    Загрузка занимает не менее 10 минут, в зависимости от скорости вашего интернет-соединения.

Пакеты прокладок

В таблице ниже перечислены пакеты, доступные для каждой версии и архитектуры устройства:

Версия устройства Пакеты (если поддерживается APEX) Пакеты (если APEX не поддерживается)
РУКА x86 РУКА x86
Android 16 QPR2 16-arm-release android16-x86-release android16-arm-CtsShim.apk

android16-arm-CtsShimPriv.apk

android16-x86-CtsShim.apk

android16-x86-CtsShimPriv.apk

Андроид 16 16-arm-release android16-x86-release android16-arm-CtsShim.apk

android16-arm-CtsShimPriv.apk

android16-x86-CtsShim.apk

android16-x86-CtsShimPriv.apk

Android 15 15-arm-release android15-x86-release android15-arm-CtsShim.apk

android15-arm-CtsShimPriv.apk

android15-x86-CtsShim.apk

android15-x86-CtsShimPriv.apk

Андроид 14 android14-arm-release android14-x86-release android14-arm-CtsShim.apk

android14-arm-CtsShimPriv.apk

android14-x86-CtsShim.apk

android14-x86-CtsShimPriv.apk

Android 13 android13-arm-release android13-x86-release android13-arm-CtsShim.apk

android13-arm-CtsShimPriv.apk

android13-x86-CtsShim.apk

android13-x86-CtsShimPriv.apk

Андроид 12 android12-arm-release android12-x86-release android12-arm-CtsShim.apk

android12-arm-CtsShimPriv.apk

android12-x86-CtsShim.apk

android12-x86-CtsShimPriv.apk

Android 11 android11-arm-release android11-x86-release android11-arm-CtsShim.apk

android11-arm-CtsShimPriv.apk

android11-x86-CtsShim.apk

android11-x86-CtsShimPriv.apk

Android 10 android10-release android10-arm-CtsShim.apk

android10-arm-CtsShimPriv.apk

android10-x86-CtsShim.apk

android10-x86-CtsShimPriv.apk

Android 9, O и O-MR1 Н/Д Н/Д arm-CtsShim.apk

arm-CtsShimPriv.apk

x86-CtsShim.apk

x86-CtsShimPriv.apk

Что дальше?

После прочтения этого документа перейдите к выполнению автоматизированных тестов CTS .