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

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

Дизайн и реализация CATBox

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

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

CATBox

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

Трейдфед

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

Автомобильная тестовая среда

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

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

Андроид 12

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

Андроид 11

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

Сборка CATBox

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

  1. Выберите Device Target и выполните следующую команду:

    # Select Device Target Based on Device Architecture
    $ lunch <target>
    
  2. Чтобы собрать CATBox, выполните следующую команду:

    # Build CATBox
    $ make catbox
    

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

Настройка среды

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

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

Используйте тестовую среду Tradefed для запуска тестов на устройствах Android. Перед настройкой CATBox ознакомьтесь с Обзором Торговой Федерации .

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

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

Перед запуском плана тестирования выполните следующие шаги для настройки устройства:

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

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

    1. Чтобы восстановить заводские настройки автомобильного устройства, нажмите « Настройки» > «Система» > «Параметры сброса» > «Удалить все данные» .
    2. Дождитесь автоматического перезапуска устройства.
    3. Убедитесь, что adb включен. Чтобы убедиться, что устройство доступно, выполните следующую команду:

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

      # Enable Root
      $ adb -s DEVICE_SERIAL root
      

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

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

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

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

# Extract the CATBox Package
$ unzip android-catbox.zip

# Navigate to extracted CATBox Package
$ 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-notification
catbox-functional-setting
catbox-functional-dial
catbox-functional-system-setting
catbox-functional-app-info-setting
catbox-functional-network-setting
catbox-functional-security-setting
catbox-functional-sound-setting
catbox-functional-date-time-setting
catbox-functional-appgrid
catbox-functional-home
catbox-functional-lock-screen
catbox-functional-navigation-bar
catbox-functional-ux-restriction
catbox-functional-bluetooth-audio
Планы тестирования производительности catbox-performance-cold-app-start-up-settings
catbox-performance-hot-app-start-up-settings
catbox-performance-jank-settings
catbox-performance-cold-app-start-up-dialer
catbox-performance-hot-app-start-up-dialer
catbox-performance-jank-contact-list
catbox-performance-jank-notifications
catbox-performance-jank-appgrid
catbox-performance-cold-app-start-up-mediacenter
catbox-performance-hot-app-start-up-mediacenter
catbox-performance-create-and-switch-to-new-guest
catbox-performance-create-and-switch-to-new-user
catbox-performance-create-and-switch-to-precreated-guest
catbox-performance-create-and-switch-to-precreated-user
catbox-performance-switch-to-existing-user

Результаты испытаний CATBox

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

  • Результаты теста см. в test_result.xml .
  • Подробные сведения о тестах на отказ см. test_result_failures_suite.html .
  • Результаты показателей производительности см. в CatboxPerformanceTests.reportlog.json в каталоге report-log-files .

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

Некоторые тесты, такие как Dial, Bluetooth Audio и jank-тесты списка контактов, требуют дополнительной настройки устройства.

Циферблатный тест

Тест Dial требует настройки устройства и параметров среды выполнения. Чтобы настроить устройство:

  1. Подключите мобильное устройство к головному устройству Automotive через Bluetooth.
  2. Убедитесь, что в тестовом телефоне есть SIM-карта для запуска тестов набора номера и что он подключен к мобильной сети.
  3. Тесты набора номера используют контакты по умолчанию, хранящиеся в телефоне. Используйте contact.vcf для загрузки контактов на телефон.
  4. Замените COMPANION_SERIAL серийным идентификатором телефона и выполните следующие команды:

    # Contacts can be loaded on the phone by pushing the contacts.vcf file on
    the phone and importing it in the Contacts application.
    
    OR
    
    # Importing contacts using adb.
    
    # Push contacts VCF file to phone
    
    $ adb -s COMPANION_SERIAL push <path-to-downloaded-contacts-vcf-file> /storage/emulated/0/Android/data/com.google.android.contacts/contacts.vcf
    
    # Grant Read Permissions
    
    $ adb -s COMPANION_SERIAL shell pm grant com.google.android.contacts
    android.permission.READ_EXTERNAL_STORAGE
    
    # Import contacts from the VCF file
    
    $ adb -s COMPANION_SERIAL shell am start-activity -W -t 'text/x-vcard' -d file:///storage/emulated/0/Android/data/com.google.android.contacts/contacts.vcf
    -a android.intent.action.VIEW com.google.android.contacts
    
    # Then accept the prompts on the UI to load the contacts.
    
Параметры времени выполнения

Тесты набора номера используют маленькие и большие телефонные номера для выполнения теста. Тесты набора номера также используют имя и номер контакта для тестов поиска. Используйте следующие параметры для предоставления этой информации:

Parameters for Large Phone Number:
--module-arg AndroidAutomotiveDialTests:instrumentation-arg:large-phone-number:=< 10 digit phone number>

Parameters for Small Phone Number:
--module-arg AndroidAutomotiveDialTests:instrumentation-arg:small-phone-number:=< 3 digit phone number>

Parameters for Search Contact Name:
--module-arg AndroidAutomotiveDialTests:instrumentation-arg:search-contact-name:=< some contact name stored on the phone >

Parameters for Search Contact Number:
--module-arg AndroidAutomotiveDialTests:instrumentation-arg:search-contact-number:=< contact number of the name provided in the search contact name >

Аудио тест Bluetooth

Чтобы настроить устройство для аудиотеста Bluetooth:

  1. Убедитесь, что приложение YouTube Music установлено на телефоне и вы вошли в учетную запись. Если нет, установите приложение и войдите в учетную запись.
  2. Соедините телефон вручную с автомобильным устройством через Bluetooth.
  3. Как только телефон будет сопряжен, воспроизведите на телефоне песню, а затем начните выполнение теста.

Джанк-тест списка контактов

Чтобы настроить устройство для jank-теста списка контактов:

  1. Убедитесь, что в телефоне есть несколько контактов, чтобы тест мог прокручивать список контактов для сбора показателей нежелательной почты.
  2. Соедините телефон вручную с автомобильным устройством через Bluetooth.
  3. Как только телефон будет сопряжен, контакты будут доступны на устройстве.