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