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

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

Проектирование и внедрение CATBox

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

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

CATBox

Рисунок 1. Упаковка CATBox

Tradefed

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

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

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

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

Android 14

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

Android 12

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

Android 11

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

Создайте CATBox

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

Для локальной сборки пакета 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. Подключите как минимум одно устройство и подготовьте тестируемое устройство (DUT) следующим образом:

    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 Функциональные тесты App Grid.
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 Функциональные тесты, ограничивающие пользовательский опыт.
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 Функциональные тесты, ограничивающие пользовательский опыт.
catbox-functional-ux-restriction-facet-bar Функциональные тесты, ограничивающие пользовательский опыт.

В таблице ниже приведены планы тестирования производительности 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 Тест производительности при запуске популярных приложений: «Телефон» и «Дозвон».
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 Тесты производительности для медиафайлов.
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