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

Рисунок 1. Пакет CATBox
Трейдфед
Tradefed — это фреймворк непрерывного тестирования с открытым исходным кодом, используемый для проведения тестов на устройствах Android. Подробнее см. в разделе «Обзор Trade Federation» .
Структура автомобильных испытаний
CATBox основан на фреймворке для автомобильного тестирования Spectatio , который предоставляет API для тестирования различных приложений на автомобильных устройствах. Он построен на основе UI Automator , фреймворка с открытым исходным кодом, предоставляющего набор API для создания UI-тестов, взаимодействующих с пользовательскими и системными приложениями.
Загрузки тестового набора 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 build, как только код Android AOSP станет доступен на локальной рабочей станции.
Чтобы собрать пакет CATBox локально:
- Выберите целевое устройство на основе архитектуры устройства и выполните следующую команду: - lunch <target>
- Чтобы собрать CATBox, выполните следующую команду: - make catbox- Эта команда создает файл - android-catbox.zipв каталоге- /out/host/linux-x86/catbox, который затем можно использовать для запуска тестов.
Настройте среду
Настройка среды, необходимая для выполнения тестов CATBox, аналогична настройке CTS . Чтобы настроить среду, выполните следующие действия:
- Установите ADB и AAPT . 
- Установите JDK. См. раздел «Java Development Kit для Ubuntu» . 
- Увеличьте лимит памяти. См. Требования к хранилищу . 
Настройка и запуск CATBox
Используйте тестовый фреймворк Tradefed для запуска тестов на устройствах Android. Перед настройкой CATBox ознакомьтесь с обзором Trade Federation .
Инструкции по настройке и запуску CATBox см. в разделах ниже.
Настройте устройство
Перед запуском плана тестирования выполните следующие шаги по настройке устройства:
- Убедитесь, что у вас установлены последние версии Android Debug Bridge (adb) и Android Asset Packaging Tool (AAPT) , а также добавлено расположение этих инструментов в системный путь вашего компьютера. Подробнее см. в разделах ADB и AAPT . 
- Подключите хотя бы одно устройство и подготовьте тестируемое устройство (DUT) следующим образом: - Чтобы сбросить настройки автомобильного устройства до заводских, перейдите в раздел «Настройки» > «Система» > «Параметры сброса» > «Удалить все данные» . 
- Подождите, пока устройство автоматически перезагрузится. 
- Убедитесь, что adb включён. Чтобы убедиться, что устройство доступно, выполните следующую команду: - adb devices
- Чтобы включить root, выполните следующую команду: - adb -s DEVICE_SERIAL root- Замените - DEVICE_SERIALна серийный идентификатор автомобильного устройства.
- Подключитесь к 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 | Функциональные тесты Media Center. | 
| 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 | Тест производительности горячего запуска приложений «Дозвонщик» и «Телефон». | 
| 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 | 
