Полные автомобильные тесты в коробке

Complete Automotive Tests in a Box (CATBox) — это пакет с открытым исходным кодом, который предоставляет платформы и инструменты, необходимые для оптимизации и выполнения автомобильных тестов с минимальной конфигурацией. CATBox масштабируем и совместим с инструментами, инфраструктурой и тестами, которые вы используете для тестирования и проверки реализаций Android Automotive OS (AAOS). В результате вы можете предлагать на рынке высококачественную продукцию.

Проектирование и реализация CATBox

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

На следующем изображении показан высокоуровневый дизайн пакета CATBox.

CATBox

Рисунок 1. Пакет CATBox

Tradefed

Tradefed — это среда непрерывного тестирования с открытым исходным кодом, используемая для выполнения тестов на устройствах Android. Подробности см. в Обзоре Торговой федерации .

Система автомобильных испытаний

CATBox основан на платформе автомобильного тестирования под названием Spectatio , которая предоставляет API для тестирования различных приложений на автомобильных устройствах. Он построен на основе UI Automator , среды тестирования с открытым исходным кодом, которая предоставляет набор API для создания тестов пользовательского интерфейса, которые взаимодействуют с пользовательскими и системными приложениями.

Загрузка набора тестов CATBox

Андроид 14

Android Automotive 14 — это выпуск вехи разработки под кодовым названием U. Используйте следующие ссылки, чтобы загрузить наборы тестов CATBox для Android 14:

Андроид 12

Android 12 — это выпуск вехи разработки под кодовым названием S. Используйте следующие ссылки, чтобы загрузить наборы тестов CATBox для Android 12:

Андроид 11

Android 11 — это выпуск ключевого этапа разработки под кодовым названием R. Используйте следующие ссылки, чтобы загрузить наборы тестов CATBox для Android 11:

Сборка CATBox

Используйте команду сборки catbox , как только код Android AOSP станет доступен на локальной рабочей станции.

Чтобы собрать пакет CATBox локально:

  1. Выберите целевое устройство в зависимости от архитектуры устройства и выполните следующую команду:

    lunch <target>
    
  2. Чтобы собрать CATBox, выполните следующую команду:

    make catbox
    

    Эта команда создает файл android-catbox.zip в каталоге /out/host/linux-x86/catbox , который затем можно использовать для запуска тестов.

Настройте среду

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

Настройте и запустите CATBox

Используйте платформу тестирования Tradefed для запуска тестов на устройствах Android. Прежде чем настраивать CATBox, ознакомьтесь с Обзором Trade Federation .

Чтобы настроить и запустить CATBox, см. разделы ниже.

Настройте устройство

Прежде чем запускать план тестирования, выполните следующие действия для настройки устройства:

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

  2. Подключите хотя бы одно устройство и подготовьте тестируемое устройство (ТУ) следующим образом:

    1. Чтобы выполнить сброс настроек автомобильного устройства, выберите «Настройки» > «Система» > «Параметры сброса» > «Стереть все данные» .

    2. Подождите, пока устройство автоматически перезагрузится.

    3. Убедитесь, что adb включен. Чтобы убедиться, что устройство доступно, выполните следующую команду:

      adb devices
      
    4. Чтобы включить root, выполните следующую команду:

      adb -s DEVICE_SERIAL root
      

      Замените DEVICE_SERIAL серийным идентификатором автомобильного устройства.

    5. Подключитесь к Wi-Fi.

Извлеките пакет CATBox

После настройки устройства разархивируйте пакет CATBox и перейдите в извлеченную папку:

unzip android-catbox.zip
cd android-catbox

Выполнение тестов в CATBox

Чтобы запустить CATBox с планами тестирования в пакете CATBox:

./tools/catbox-tradefed run commandAndExit TEST_PLAN_NAME --serial DEVICE_SERIAL

Замените DEVICE_SERIAL серийным идентификатором автомобильного устройства. Если к хост-компьютеру подключено несколько устройств, используйте DEVICE_SERIAL чтобы различать их. Замените TEST_PLAN_NAME именем плана тестирования, который вы хотите запустить.

Чтобы получить наиболее полный список доступных планов, используйте командную строку:

./tools/catbox-tradefed list plans | grep -i catbox

Типы планов тестирования

В следующей таблице показаны доступные планы функционального тестирования.

Планы функциональных испытаний Описание
catbox-functional Функциональные тесты.
catbox-functional-app-info-setting Информация о приложении, устанавливающая функциональные тесты.
catbox-functional-admin-user-grant-permissions Функциональные тесты предоставления разрешений администратору.
catbox-functional-app-info-setting-ui-elements Информация о приложении, устанавливающая функциональные тесты.
catbox-functional-appgrid Функциональные тесты сетки приложений.
catbox-functional-base Список функциональных тестов.
catbox-functional-bluetooth-audio Аудио Bluetooth Функциональные тесты.
catbox-functional-bluetooth-palette Функциональные тесты строки состояния.
catbox-functional-bluetooth-tests Bluetooth тестируется с помощью Mobly.
catbox-functional-brightness-palette Функциональные тесты строки состояния.
catbox-functional-btmoped Функциональные тесты на базе Bluetooth-мопеда.
catbox-functional-date-time-setting Функциональные тесты установки даты и времени.
catbox-functional-dial Наберите функциональные тесты.
catbox-functional-display-setting Функциональные тесты настройки дисплея.
catbox-functional-driving-optimized-apps Функциональные тесты ограничения UX.
catbox-functional-enable-developers-option Включите опцию разработчиков функциональных тестов.
catbox-functional-home Домашние функциональные тесты.
catbox-functional-lock-screen Функциональные тесты экрана блокировки.
catbox-functional-mediacenter Функциональные тесты Медиацентра.
catbox-functional-microphone-recent-apps Функциональные тесты настройки микрофона.
catbox-functional-microphone-setting Функциональные тесты настройки микрофона.
catbox-functional-multiuser Многопользовательские функциональные тесты.
catbox-functional-multiuser-system-user Многопользовательские функциональные тесты.
catbox-functional-navigation-bar Функциональные тесты панели навигации.
catbox-functional-network-palette Функциональные тесты строки состояния.
catbox-functional-network-setting Функциональные тесты настройки сети.
catbox-functional-notification Уведомление о функциональных тестах.
catbox-functional-privacy-permission-manager Функциональные тесты настройки разрешений приложения конфиденциальности.
catbox-functional-privacy-setting Функциональные тесты настройки микрофона.
catbox-functional-privacy-setting-ui-elements Функциональные тесты настройки конфиденциальности.
catbox-functional-profile-icon Функциональные тесты панели значков профиля.
catbox-functional-profiles-icon-list Тесты списка значков профилей.
catbox-functional-security-setting Функциональные тесты настроек безопасности.
catbox-functional-setting Постановка функциональных тестов.
catbox-functional-settings-location Установка локации Тесты.
catbox-functional-sound-setting Функциональные тесты настройки звука.
catbox-functional-status-bar Функциональные тесты строки состояния.
catbox-functional-storage-setting Функциональные тесты настроек хранилища.
catbox-functional-system-setting Функциональные тесты настройки системы.
catbox-functional-systemui Тесты пользовательского интерфейса системы.
catbox-functional-ux-restriction Функциональные тесты ограничения UX.
catbox-functional-ux-restriction-facet-bar Функциональные тесты ограничения UX.

В следующей таблице перечислены планы тестирования производительности CATBox.

Планы тестирования производительности Описание
catbox-performance-cold-app-start-up-dialer Тест производительности при холодном запуске приложения для номеронабирателя и телефона.
catbox-performance-cold-app-start-up-mediacenter Тест производительности холодного запуска приложения для Media Center.
catbox-performance-cold-app-start-up-settings Тест производительности холодного запуска приложения для настроек.
catbox-performance-create-and-switch-to-new-guest Измерьте задержку для переключения на нового гостя.
catbox-performance-create-and-switch-to-new-user Измерьте задержку при переключении на нового пользователя без прав администратора.
catbox-performance-hot-app-start-up-dialer Тест производительности при запуске горячего приложения для Dialer и Phone.
catbox-performance-hot-app-start-up-mediacenter Тест производительности при запуске горячего приложения для Media Center.
catbox-performance-hot-app-start-up-settings Тест производительности при запуске горячего приложения для настроек.
catbox-performance-jank-appgrid Тест производительности Appgrid.
catbox-performance-jank-contact-list Тест производительности для Контактов.
catbox-performance-jank-media Тесты производительности для Media.
catbox-performance-jank-media-switch-playback Тест производительности при воспроизведении с переключателем мультимедиа.
catbox-performance-jank-notifications Тест производительности уведомлений.
catbox-performance-jank-settings Тест производительности для настроек.
catbox-performance-switch-to-existing-user Измерьте задержку, чтобы переключиться на существующего пользователя.

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

При выполнении тестов на стороне хоста с несколькими устройствами используется CATBox для запуска теста за один сеанс. Например, BTDiscoveryTest :

make catbox
./tools/catbox-tradefed run commandAndExit catbox-functional-bluetooth-tests --{phone}serial <serial> --{auto}serial <serial> --mobly-host:mobly-par-file-name BTDiscoveryTest

CATBox устанавливает apk , а затем тест запускается в правильной среде выполнения Python.

Просмотрите результаты испытаний CATBox

Результаты функциональных тестов и тестов производительности сохраняются в android-catbox/results/latest .

Тип результата Расположение
Результаты испытаний test_result.xml
Подробности отказных испытаний test_result_failures_suite.html
Результаты показателей производительности /report-log-files/CatboxPerformanceTests.reportlog.json
Функциональные тесты и тесты производительности /android-catbox/logs/latest