Тестовая станция OmniLab Android

OmniLab ATS — это инструмент тестирования, который разработчики Android и инженеры по тестированию могут использовать для запуска стандартных наборов тестов Android, таких как Android Compatibility Test Suite (CTS) . Этот инструмент выступает в качестве веб-интерфейса для различных тестовых фреймворков, таких как Trade Federation (TF) и Google Mobly , позволяя запускать тесты CTS и многоустройственные тесты на наборе тестовых устройств с минимальной настройкой, а также устанавливать расписание для непрерывного запуска тестов.

Введение в OmniLab ATS 2.0

OmniLab ATS 2.0 переносит базовую инфраструктуру выполнения тестов из Trade Federation в OmniLab. Это изменение обеспечивает более надежную и эффективную серверную часть, сохраняя при этом пользовательский интерфейс и рабочие процессы OmniLab ATS 1.0.

Основные преимущества OmniLab ATS 2.0:

  • Модернизированная инфраструктура: используется платформа OmniLab для повышения стабильности и производительности.
  • Плавный переход: никаких изменений в веб-интерфейсе или основных рабочих процессах выполнения тестов.
  • Готовность к будущему: соответствует единой инфраструктуре тестирования Google, что позволяет быстрее внедрять новые функции.

OmniLab ATS 2.0 включает в себя новые функции, такие как массовое обновление планов тестирования, расширенное распределение устройств и многое другое. Подробности смотрите в примечаниях к выпуску .

Обновите OmniLab ATS до версии 2.0:

Чтобы попробовать OmniLab ATS 2.0, добавьте флаг --force_ats_version 2 к команде mtt start :

mtt start --force_ats_version 2

В период миграции мы рекомендуем использовать тег dogfood для доступа к последней стабильной сборке с функциями OmniLab ATS 2.0:

mtt start --force_ats_version 2 --tag dogfood --force_update

Мы планируем сделать OmniLab ATS 2.0 версией по умолчанию в третьем квартале 2026 года. Мы планируем постепенно отказаться от OmniLab ATS 1.0 к концу 2026 года.

Для получения более подробной информации о конкретных обновлениях, известных отличиях и рекомендациях по обновлению см. Руководство по обновлению OmniLab ATS 2.0 .

Настройка OmniLab ATS

В этом разделе объясняется, как установить и настроить OmniLab ATS.

OmniLab ATS использует исходный код из следующих источников:

Установите OmniLab ATS.

Соблюдайте все требования к аппаратному и программному обеспечению для запускаемых вами наборов тестов.

Требования к CTS можно найти на сайте source.android.com .

Для OmniLab ATS не требуется дополнительного оборудования, но мы рекомендуем использовать требования к хосту CTS в качестве отправной точки.

Существует два способа установки OmniLab ATS:

Установите с помощью программы установки.

В Ubuntu 20.04 и более поздних версиях программа установки устанавливает и настраивает все программы и ресурсы, необходимые для работы OmniLab ATS.

Для использования программы установки:

  1. Запустите программу установки:

    curl https://storage.googleapis.com/android-mtt.appspot.com/prod/install.sh | bash
    
  2. Запустите команду mtt version , чтобы проверить установленную версию OmniLab ATS CLI.

Установить вручную

Установите Docker.
  1. Следуйте инструкциям по установке Docker Community Edition (CE) на ваш компьютер под управлением Linux.

  2. Для управления Docker от имени пользователя без прав root выполните действия, описанные после установки .

  3. Возможно, вам потребуется перезапустить окно терминала или выйти из системы и войти снова, чтобы изменения прав доступа вступили в силу.

Установите Python 3.

Интерфейс командной строки OmniLab ATS проверен на совместимость с версиями Python от 3.7 до 3.11.

Для Ubuntu 16.04 и более ранних версий сначала добавьте репозиторий Python 3, выполнив одно из следующих действий:

  • Выполните эту команду:

    sudo add-apt-repository ppa:deadsnakes/ppa
    
  • Соберите и установите репозиторий из исходного кода .

Для установки Python 3 выполните следующие команды:

sudo apt-get update
sudo apt install python3 python3-distutils

Для установки определенной версии Python 3 (например, 3.10) выполните следующие команды:

sudo apt-get update
sudo apt install python3.10 python3.10-distutils

Получите интерфейс командной строки OmniLab ATS.

Скачать пакет интерфейса командной строки (CLI) можно здесь.

Запуск OmniLab ATS

Запустите OmniLab ATS с помощью следующей команды:

mtt start

При первом запуске пользовательского интерфейса может потребоваться несколько минут для его отображения. Интерфейс командной строки отображает веб-адрес для доступа к интерфейсу в браузере. По умолчанию веб-адрес — localhost:8000 . При необходимости вы можете изменить порт по умолчанию при запуске с помощью флага --port .

Если доступна более новая версия, вы можете обновить её до текущей. С примечаниями к выпуску можно ознакомиться в разделе «Примечания к выпуску» для получения информации о последних версиях.

Для обновления до текущей версии выполните:

mtt start --force_update

Чтобы остановить приложение, выполните:

mtt stop

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

mtt --help

Создайте резервную копию и восстановите базу данных.

Для резервного копирования базы данных OmniLab ATS остановите приложение и выполните следующую команду, которая создаст резервную копию текущей базы данных в TAR-файл с именем mtt-backup.tar в вашей домашней директории:

docker run --rm --mount source=mtt-data,target=/data -v ~:/out ubuntu bash -c "cd /data && tar cvf /out/mtt-backup.tar ."

Для восстановления выполните следующую команду перед запуском приложения:

docker run --rm --mount source=mtt-data,target=/data -v ~:/out ubuntu bash -c "cd /data && tar xvf /out/mtt-backup.tar"

Мастер установки

После установки и первого запуска OmniLab ATS мастер настройки проведет вас через несколько шагов, которые помогут настроить инструмент под вашу среду. Любые изменения, внесенные здесь, можно будет повторно настроить позже на странице «Настройки».

Восстановить резервную копию конфигурации

Если у вас есть резервная копия файла конфигурации с другого хоста OmniLab ATS, вы можете загрузить этот файл, чтобы скопировать все измененные на этом хосте конфигурации, нажав кнопку «Загрузить файл» .

Восстановить резервную копию конфигурации

Рисунок 1. Восстановление резервной копии конфигурации.

Установить учетную запись службы по умолчанию

Вы можете указать учетную запись службы , которую OmniLab ATS будет использовать по умолчанию при доступе к вашим ресурсам (например, Google Cloud Storage, Google Drive). Для аутентификации вашей учетной записи службы нажмите «Загрузить ключ учетной записи службы» и выберите файл ключа JSON вашей учетной записи службы.

Установить учетную запись службы

Рисунок 2. Настройка учетной записи службы.

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

Изменить учетную запись службы

Рисунок 3. Изменение учетной записи службы.

Импорт наборов конфигурации

Набор конфигураций — это пакет настроек для запуска тестовых наборов, включая соответствующие действия с устройством и каналы сборки. Наборы конфигураций размещаются в определенном сегменте Google Cloud Storage (GCS). После аутентификации канала сборки GCS с помощью вашей учетной записи Google вы увидите список всех доступных вам наборов конфигураций.

Выберите любые наборы конфигураций, которые вы хотите добавить на свой хост тестовой станции, и нажмите «Импортировать выбранные» .

Импорт наборов конфигурации

Рисунок 4. Импорт набора конфигураций.

Включить настройки Wi-Fi

Для некоторых тестов CTS требуется подключение устройства к точке доступа Wi-Fi. Чтобы выбрать свою сеть Wi-Fi, введите SSID сети и, при необходимости, PSK сети Wi-Fi .

Настройки Wi-Fi

Рисунок 5. Настройки точки доступа Wi-Fi.

После завершения работы мастера настройки страница перезагружается, и новые параметры уже применены.

Подключите устройство

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

  1. Следуйте инструкциям в разделе «Включение параметров разработчика и отладки» .

  2. Если вы планируете использовать тестовые сборки Android с предварительно загруженными пользовательскими ключами ADB, поместите пользовательские файлы .adb_key в каталог ~/.android/ .

    Файлы загружаются автоматически и передаются в ADB для автоматического включения отладки по USB после прошивки устройства, работающего на этих сборках.

  3. Подключите устройство к компьютеру с помощью USB-кабеля.

    Устройство отобразится на вкладке «Устройства OmniLab ATS» в течение одной минуты после обновления веб-интерфейса. На этой же вкладке можно просмотреть состояние устройств.

    Подключите устройство

    Рисунок 6. Подключение устройства.

Различные состояния устройства следующие:

  • Доступно — устройство подключено и готово к проведению теста.
  • Выделено — устройство подключено и выполняет тестирование. Каждое устройство может выполнять только один тест одновременно, поэтому устройство должно завершить текущий тест, прежде чем запускать новый.

Провести тест

Выберите тест

OmniLab ATS поставляется с набором предварительно настроенных конфигураций CTS. Чтобы запустить один из этих тестов, перейдите на вкладку «Наборы тестов» и нажмите «Запустить тест» для выбранного теста.

Выберите тест

Рисунок 7. Выбор теста.

Чтобы редактировать или добавлять новые тесты, см. раздел «Добавление тестов» .

Настройка запуска теста

Отредактируйте параметры, которые будут использоваться для данного конкретного запуска теста. Большинство параметров предварительно заполнены значениями, определенными в выбранной конфигурации теста.

Этот шаг можно выполнить, используя значения по умолчанию, но вы можете изменить любой из параметров, таких как максимальное количество попыток и команда , в соответствии со своими потребностями.

Настройка запуска теста

Рисунок 8. Настройка тестового запуска.

Параметры тестового запуска:

  • Name - Название набора тестов, который вы хотите запустить.
  • Количество запусков — число раз, которое этот тестовый запуск должен быть выполнен по расписанию. Тестовые запуски планируются с помощью Trade Federation , которая запускает до 20 тестовых запусков параллельно, если позволяет пропускная способность.
  • Max Retry — максимальное количество попыток повторного запуска теста, если хотя бы один тест не пройден. Обычно это значение устанавливается на 4–6 попыток для полного запуска CTS, чтобы справиться с нестабильными тестами.
  • Истекло время ожидания в очереди — если тестовый запуск слишком долго находится в состоянии «В очереди» , он автоматически отменяется. Укажите здесь время ожидания перед отменой. По умолчанию — 24 часа.
  • Команда — команда для запуска набора тестов. Здесь можно ввести дополнительные аргументы командной строки. Например, для запуска определенного модуля в CTS 8.1 используйте:

    cts-suite -m ShortModuleName
    
  • Команда повторной попытки — команда для повторной попытки выполнения набора тестов. Здесь можно добавить дополнительные аргументы командной строки. Например, чтобы повторить только определенный модуль в CTS 8.1, используйте:

    cts --retry 0 -m ShortModuleName
    

    Аргументы для повторной попытки могут отличаться от тех, которые доступны при выполнении первоначальной команды, поэтому проверьте поддерживаемые параметры на официальном сайте для выбранного набора тестов.

  • Предыдущий запуск теста — Если вы хотите повторно запустить предыдущий запуск теста:

    • Локальный запуск — Если запуск был начат на текущем хосте, введите идентификатор тестового запуска, отображаемый при просмотре сведений о тестовом запуске.

      Локальный предыдущий тестовый запуск

      Рисунок 9. Предыдущий локальный тестовый запуск.

    • Удаленный доступ — Если запуск был выполнен на другом хосте, загрузите файл с результатами теста, выбрав «Удаленный доступ» , нажав «Загрузить файл с результатами теста» и выбрав файл из локального хранилища.

      Предыдущий удаленный тестовый запуск

      Рисунок 10. Предыдущий удаленный тестовый запуск.

Выберите устройства

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

Выберите устройства

Рисунок 11. Выбор устройств.

Для выбора устройств по атрибутам, отличным от серийных номеров, можно вручную ввести «Характеристики устройства». Например, чтобы выбрать 3 устройства с названием продукта «bramble», введите следующее:

product:bramble;product:bramble;product:bramble

Поддерживаемые атрибуты:

  • build_id
  • device_serial
  • тип_устройства
  • имя хоста
  • продукт
  • вариант продукта
  • sim_state

Для выполнения теста все выбранные устройства должны находиться в состоянии «Доступно» , и после запуска теста все они переходят в состояние «Выделено» . Тест находится в состоянии «В очереди» , пока ожидает, когда устройства станут доступны.

Добавить действия устройства

Действия устройства — это скрипты, которые можно выполнить перед каждым запуском теста. Некоторые действия устройства уже настроены, например, прошивка и перезагрузка. Чтобы создать новые действия устройства, см. раздел «Создание нового действия устройства» .

Действия устройства

Рисунок 12. Действия устройства.

Чтобы добавить действие устройства в тестовый запуск, нажмите «Добавить новое действие» , выберите флажки для добавляемых действий и нажмите «Добавить действие(я)» . Действия устройства выполняются последовательно. Вы можете изменить порядок действий, перетаскивая их.

Добавить действия

Рисунок 13. Действия по перестановке.

Установить тестовые ресурсы

Тестовые ресурсы — это файлы, необходимые для выполнения тестового запуска. Например, для запуска CTS требуется файл android-cts*.zip , а для прошивки устройства необходимо предоставить образ сборки.

Ссылка для скачивания ZIP-архива с набором тестов по умолчанию должна соответствовать ссылкам Google Drive, предоставленным партнерам. Вы можете выбрать другой файл, нажав кнопку «Обзор» . Во всплывающем окне вы можете ввести ссылку для скачивания файла, использовать файл из авторизованного канала сборки или загрузить файл из локального хранилища.

Тестовые ресурсы

Рисунок 14. Тестовые ресурсы.

Ниже представлено всплывающее окно для выбора тестового ресурса по веб-адресу. Вы можете ввести ссылку для скачивания и нажать кнопку «Выбрать» для подтверждения выбора.

Инструмент выбора ресурса для тестирования - веб-URL

Рисунок 15. Селектор тестовых ресурсов — веб-URL.

Если вы загрузили ресурсы в Google Диск, Google Облачное Хранилище (GCS) или другие каналы, вы также можете перейти на вкладку конкретного канала и выбрать ресурсы там. Вот пример выбора ресурса из Google Диска.

Инструмент выбора тестовых ресурсов - Google Диск

Рисунок 16. Инструмент выбора тестовых ресурсов — Google Drive.

Помимо выбора файлов, в поле «Имя файла» также поддерживаются символы-заменители. Документацию можно найти здесь .

Селектор тестовых ресурсов — поддержка шаблонов подстановки

Рисунок 17. Селектор тестовых ресурсов — поддержка шаблонов с подстановочными знаками.

Вы также можете выбрать файл из локального файлового хранилища OmniLab ATS. Вы можете загружать файлы в это хранилище или напрямую использовать локальные файлы и каталоги .

Инструмент выбора ресурсов для тестирования — локальное хранилище файлов.

Рисунок 18. Селектор тестовых ресурсов — локальное хранилище файлов.

Добавить конфигурации повторного запуска

Вы можете запланировать повторные запуски, которые начнутся после завершения основного запуска и загрузят его результаты, но при этом могут использовать другие устройства, действия или ресурсы.

Добавить конфигурации повторного запуска

Рисунок 19. Добавление конфигураций повторного запуска.

Запустить тестовый запуск

После ввода необходимой для тестирования информации нажмите кнопку «Начать тестирование» . Если вся информация верна, тестирование начнётся, и вы будете перенаправлены на страницу для просмотра подробностей и хода выполнения теста.

Начать тестовый запуск

Рисунок 20. Начало тестового запуска.

Создайте план тестирования.

Планы тестирования используются для создания тестовых запусков по периодическому расписанию. Например, запуск CTS 9.0 каждый день в 17:00. Чтобы создать новый план тестирования, нажмите « Создать новый план тестирования» .

Создать план тестирования

Рисунок 21. Создание плана тестирования.

Настройте план тестирования

Введите название плана тестирования и любые метки, которые вы хотите добавить. Затем выберите расписание для использования.

  • Ручной режим — План тестирования создает тестовые запуски только тогда, когда пользователь нажимает кнопку «Запустить план тестирования» на странице списка планов тестирования.
  • Периодический режим — План тестирования автоматически назначает запуски тестов в соответствии с выбранным периодическим расписанием. Например, запуск теста может быть запланирован каждый день в 17:00.
  • Пользовательский — План тестирования автоматически назначает запуски тестов на основе введенного выражения cron . Например, чтобы запланировать запуск теста каждый день в 17:00, выражение cron будет выглядеть так 0 17 * * * .

Настройка плана тестирования

Рисунок 22. Настройка плана тестирования.

Добавить наборы тестов

Добавьте наборы тестов, которые вы хотите запланировать с помощью плана тестирования, нажав кнопку «+ Добавить конфигурацию запуска теста» . Выберите набор тестов из раскрывающегося списка «Имя» и нажмите «Следующий шаг» . Затем выберите устройства, на которых вы хотите запустить тест, и нажмите «Добавить конфигурацию» . Вы можете добавить несколько конфигураций для каждого плана тестирования.

Настройка запуска теста

Рисунок 23. Настройка тестового запуска.

Добавить действия устройства

Добавьте действия устройства, которые должны выполняться перед каждым запуском теста. Дополнительные сведения см. в разделе «Добавление действий устройства» .

Добавить действия устройства

Рисунок 24. Добавление действий устройства.

Установить тестовые ресурсы

Добавление тестовых ресурсов в планы тестирования аналогично их добавлению в отдельные тестовые запуски. Дополнительные сведения см. в разделе «Настройка тестовых ресурсов» .

Установить тестовые ресурсы

Рисунок 25. Настройка тестовых ресурсов.

Просмотреть результаты тестовых запусков

Список тестовых запусков

Список запланированных тестовых запусков можно посмотреть на странице «Тестовые запуски». Нажмите «Просмотреть» , чтобы увидеть более подробную информацию о тестовом запуске.

Вы также можете отфильтровать список, введя строку в строку фильтра и нажав клавишу Enter . Можно использовать несколько фильтров, разделяя их запятой. Фильтр возвращает все строки, содержащие точный текст (без совпадения подстроки) в любом столбце, за исключением столбцов «Статус» и «Создано» .

Фильтр, содержащий пустые значения, возвращает все строки. В настоящее время нет возможности отфильтровать строки, содержащие пустые значения.

Список тестовых запусков

Рисунок 26. Список тестовых запусков.

Подробности тестового запуска

Здесь вы можете просмотреть подробную информацию о тестовом запуске, такую ​​как статус, журналы и результаты.

Подробности тестового запуска

Рисунок 27. Подробности тестового запуска.

Статус выполнения теста

Ход выполнения тестового запуска отображается в разделе «Статус». Если есть связанное сообщение, например, о ходе загрузки, причине отмены или сообщении об ошибке, оно также отображается здесь.

Статус выполнения теста

Рисунок 28. Статус выполнения теста.

Результаты тестового запуска следующие:

  • Ожидание - Необходимые ресурсы загружаются.
  • Тест поставлен в очередь — он готов к запуску, когда устройство станет доступно.
  • Выполняется - Тест выполняется на выделенном устройстве.
  • Завершено - Тест завершен, и результаты сообщены.
  • Отменено — Тест был отменен пользователем или истекло время ожидания при попытке найти доступные устройства.
  • Ошибка — Произошла ошибка, которая помешала выполнению теста.

Отменить тестовый запуск

Если запуск теста не завершился, вы можете отменить его, нажав кнопку «Отмена» , а затем кнопку «Да» в диалоговом окне подтверждения. Запуски тестов также автоматически отменяются, если они остаются в состоянии «В очереди» дольше, чем указано в поле queue_timeout_seconds . Отмена запуска теста в состоянии «Выполняется» может занять несколько минут, прежде чем изменения вступят в силу.

Отменить тестовый запуск

Рисунок 29. Отмена тестового запуска.

Результаты тестового запуска

После завершения тестового запуска результаты собираются и отображаются. Дополнительные сведения можно просмотреть, щелкнув стрелку рядом с каждым запуском. Нажмите «Просмотреть выходные файлы» , чтобы увидеть собранные тестовые артефакты, такие как test_result.xml и test_result_failures.html .

Результаты тестового запуска

Рисунок 30. Результаты тестового запуска.

Журналы хоста и Tradefed в режиме реального времени можно просмотреть на вкладке «Журналы».

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

Рисунок 31. Вкладка «Журналы».

Результаты по отдельным модулям отображаются на вкладке «Результаты тестирования».

Вкладка «Результаты теста»

Рисунок 32. Вкладка «Результаты теста».

Вы можете скачать файлы, использованные в качестве тестовых ресурсов, нажав кнопку «Открыть» на вкладке «Тестовые ресурсы».

Вкладка «Ресурсы для тестирования»

Рисунок 33. Вкладка «Ресурсы для тестирования».

Чтобы просмотреть подробности выполнения теста, например, значение параметра create_time , перейдите на вкладку «Config».

Вкладка «Конфигурация теста»

Рисунок 34. Вкладка «Конфигурация».

Расширенные функции

Управление файлами конфигурации

OmniLab ATS использует конфигурационные файлы, написанные на языке YAML, для загрузки предопределенных параметров, таких как тесты, каналы сборки и действия с устройствами. Вот пример конфигурационного файла:

// example_file.yaml
tests:
- id : android.cts.9_0.arm
  name: CTS 9.0 (ARM)
  test_resource_defs:
  - name: android-cts.zip
    default_download_url: https://dl.google.com/dl/android/cts/android-cts-9.0_r7-linux_x86-arm.zip
    test_resource_type: TEST_PACKAGE
  command: cts
  env_vars:
  - name: TF_PATH
    value: ${TF_WORK_DIR}/android-cts/tools:${TF_WORK_DIR}/android-cts/testcases
  - name: LD_LIBRARY_PATH
    value: ${TF_WORK_DIR}/android-cts/lib:${TF_WORK_DIR}/android-cts/lib64
  setup_scripts:
  output_file_patterns:
  - android-cts/logs/latest/.*
  - android-cts/results/latest/.*\.html
  - android-cts/results/latest/compatibility_result\..*
  - android-cts/results/latest/logo.png
  - android-cts/results/latest/test_result.xml
  result_file: test_result.xml
  java_properties:
  - name: CTS_ROOT
    value: ${TF_WORK_DIR}
  context_file_dir: android-cts/results/
  context_file_pattern: '[\d_\.]+\.zip'
  retry_command_line: retry --retry 0
  runner_sharding_args: --shard-count ${TF_SHARD_COUNT}

build_channels:
- id: google_drive
  name: Google Drive
  provider_name: Google Drive

device_actions:
- id: flash
  name: Flash
  test_resource_defs:
  - name: bootloader.img
    test_resource_type: DEVICE_IMAGE
  - name: radio.img
    test_resource_type: DEVICE_IMAGE
  - name: img.zip
    test_resource_type: DEVICE_IMAGE
  tradefed_target_preparers:
  - class_name: com.android.tradefed.targetprep.RunHostCommandTargetPreparer
    option_values:
    - name: work-dir
      values:
      - ${TF_WORK_DIR}
    - name: host-setup-command
      values:
      - adb -s $SERIAL reboot-bootloader
      - fastboot -s $SERIAL flash bootloader bootloader.img
      - fastboot -s $SERIAL flash radio radio.img
      - fastboot -s $SERIAL reboot-bootloader
      - fastboot -s $SERIAL -w update img.zip
      - adb -s $SERIAL wait-for-device
    - name: host-cmd-timeout
      values:
      - 10m

При настройке экземпляра OmniLab ATS вы можете поделиться своей конфигурацией с другими пользователями, экспортировав ее в файл. Для этого перейдите на страницу «Настройки» и нажмите «Экспорт» в правом верхнем углу.

Управление файлами конфигурации

Рисунок 35. Управление файлами конфигурации.

После загрузки файла конфигурации предоставьте к нему доступ другим пользователям. Они смогут добавить файл конфигурации в свой экземпляр OmniLab ATS, нажав кнопку «Импорт» и выбрав файл конфигурации.

Создать новое устройство (действие)

Действия устройства используются для автоматизации процесса настройки устройства. Действия представляют собой скрипты, выполняемые на каждом устройстве, на котором запускается тест, перед каждым запуском теста, в том числе перед повторными попытками. Чтобы просмотреть список доступных действий устройства, перейдите на страницу «Настройки» и нажмите вкладку «Действия устройства». Некоторые действия устройства уже настроены, например, перезагрузка и прошивка.

вкладка «Действия с устройством»

Рисунок 36. Вкладка «Действия с устройством».

Добавить новое устройство

  1. Нажмите кнопку "Создать устройство" .

    Кнопка «Действие для нового устройства»

    Рисунок 37. Кнопка действия нового устройства.

  2. Введите название и описание.

    Название действия устройства

    Рисунок 38. Название действия устройства.

  3. Нажмите «Добавить средство подготовки целевых объектов» .

  4. Введите полное имя класса Trade Federation Target Preparer, например, com.android.tradefed.targetprep.RunHostCommandTargetPreparer .

    Добавить подготовителя целей

    Рисунок 39. Добавление целевого подготовителя.

    Список доступных инструментов подготовки целевых значений можно найти в справочнике com.android.tradefed.targetprep .

    Целевой список лиц, подготовивших документы

    Рисунок 40. Целевой список лиц, подготовивших документы.

  5. Добавьте любые параметры для использования с подготовителем целевых объектов. Чтобы просмотреть доступные параметры, проверьте targetprep , чтобы найти исходный код каждого подготовителя целевых объектов в AOSP:

    Пример варианта действия

    Рисунок 41. Пример варианта действия.

  6. Чтобы добавить опцию, нажмите «Добавить опцию подготовки целевого объекта» и введите необходимые значения.

    Пример команды действия

    Рисунок 42. Пример команды действия.

  7. Определите тестовые ресурсы, необходимые для выполнения действия с устройством, например, образы для прошивки. Чтобы добавить определение ресурса, нажмите «Добавить тестовый ресурс» и заполните необходимые поля. Если вы знаете, где находятся ваши файлы, вы можете указать URL-адрес для загрузки по умолчанию, нажав кнопку «Обзор» . Если целевые программы подготовки файлов принимают каталог в качестве тестового ресурса, выберите «Распаковать» . Затем укажите относительный каталог назначения во временном рабочем каталоге и имена файлов для распаковки. Если имена файлов не указаны, все файлы будут распакованы из тестового ресурса.

    Ресурсы для тестирования действий

    Рисунок 43. Ресурсы для тестирования действий.

  8. Нажмите «Обновить» .

    Действие Сохранить изменения

    Рисунок 44. Действие: сохранить изменения.

Управление тестами

Редактировать тест

Чтобы отредактировать сохраненный тест, перейдите на страницу «Тесты» и нажмите «Редактировать» в строке теста, который вы хотите изменить. После изменения конфигурации теста нажмите «Обновить» .

Редактировать тест

Рисунок 45. Редактирование теста.

Добавить новый тест

Чтобы добавить новый тест, перейдите на страницу «Тесты» и нажмите «Создать новый тест» . Введите необходимую информацию и нажмите «Создать» .

Создать тест

Рисунок 46. Создание теста.

Скопировать тест

Рисунок 47. Копирование теста.

Экспорт конфигураций хоста

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

Чтобы экспортировать конфигурации хоста, перейдите на страницу «Настройки» и нажмите «Экспорт» в правом верхнем углу.

Экспорт конфигураций хоста

Рисунок 48. Экспорт конфигурации хоста.

Для импорта файла конфигурации хоста перейдите на страницу «Настройки» и нажмите «Импорт» в правом верхнем углу.

Импорт конфигураций хоста

Рисунок 49. Импорт конфигурации хоста.

Используйте локальные файлы и каталоги.

Начиная с версии R11, файлы в каталоге $HOME/.ats_storage автоматически становятся доступны в OmniLab ATS. Скопируйте или переместите файл в этот каталог, после чего вы сможете выбрать его на вкладке «Локальный файл» при планировании запуска теста.

cp /path/to/file $HOME/.ats_storage

Выбор локального файла

Рисунок 50. Выбор файла из каталога $HOME/.ats_storage .

С помощью флага --mount_local_path можно монтировать дополнительные каталоги в локальное файловое хранилище.

mtt start --mount_local_path=/path/to/dir1 --mount_local_path=/path/to/dir2:renamed_dir2

Дополнительные смонтированные каталоги

Рисунок 51. Дополнительные каталоги, смонтированные в локальном файловом хранилище.

Включить многохостовый режим

В многохостовом режиме пользователи могут использовать один контроллер ATS для управления устройствами и тестами на нескольких рабочих хостах ATS.

Архитектура многохостового режима

Рисунок 52. Архитектура многохостового режима.

  1. Для запуска контроллера ATS используйте следующую команду:

    mtt start --operation_mode=ON_PREMISE
    
  2. Проверьте, доступен ли контроллер по адресу http://${CONTROLLER_HOSTNAME}:8000 .

  3. Для запуска рабочих процессов используйте следующую команду:

    mtt start --control_server_url=http://CONTROLLER_HOSTNAME:8000 --operation_mode=ON_PREMISE
    

Если ваша сеть не позволяет хостам взаимодействовать друг с другом, вам необходимо следовать более сложным инструкциям по настройке, приведенным ниже, в ATS Worker.

  1. Соедините два хоста с помощью SSH-туннелей. Выберите порты для основного и файлового серверов, например, 9000 и 9006.

    ssh -L ATS_PORT:localhost:8000 -L FS_PORT:localhost:8006 CONTROLLER_HOSTNAME
    
  2. Настройте и запустите ATS.

    DOCKER_GATEWAY_IP_ADDRESS=$(ip -4 addr show dev docker0 | grep -Eo 'inet [.0-9]+/' | grep -Eo '[.0-9]+')
    socat tcp-listen:ATS_PORT,bind="${DOCKER_GATEWAY_IP_ADDRESS}",reuseaddr,fork tcp-connect:127.0.0.1:ATS_PORT &
    socat tcp-listen:FS_PORT,bind="${DOCKER_GATEWAY_IP_ADDRESS}",reuseaddr,fork tcp-connect:127.0.0.1:FS_PORT &
    mtt start --control_server_url=http://${DOCKER_GATEWAY_IP_ADDRESS}:ATS_PORT \
                    --control_file_server_url=http://${DOCKER_GATEWAY_IP_ADDRESS}:FS_PORT \
                    --operation_mode=ON_PREMISE
    

Очиститель файлов

Очистка файлов — это задача cron, которая запускается ежечасно для очистки файлов на основе заданных пользователем настроек. ATS имеет две конфигурации по умолчанию: архивирование результатов тестовых запусков и удаление временных файлов. В этом руководстве объясняется, как настроить политики и конфигурации для эффективного управления файлами.

Политики

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

Тип операции Параметры
ARCHIVE remove_file : Если true , удалить файл после архивации.
DELETE

Критерии основаны на атрибутах файла и системной информации. Доступные критерии показаны в таблице:

Тип критерия Описание Параметры
LAST_MODIFIED_TIME Фильтруйте файлы на основе даты и времени их последнего изменения. ttl : Поддерживаются различные типы выражений времени, например, 10m , 2h , 7 days , 4w . См. pytimeparse для получения информации о поддерживаемых форматах.
LAST_ACCESS_TIME Фильтруйте файлы на основе даты и времени последнего доступа. То же самое, что и LAST_MODIFIED_TIME .
NAME_MATCH Фильтруйте файлы по их именам, используя регулярные выражения. pattern : Регулярное выражение, например, [a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}\.zip для сопоставления результатов в формате zip.
SYSTEM_AVAILABLE_SPACE Запускайте действия в зависимости от доступного места в системе. threshold : Запуск действия при снижении доступного пространства ниже порогового значения, например, 200 (Б), 200KB , 200MB , 200GB , 2TB .

Новая политика очистки файлов

Рисунок 53. Добавьте новую политику очистки файлов.

Конфигурации

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

Все целевые каталоги должны располагаться в каталоге /data . Если в вашей конфигурации целевой каталог указан как logs , он интерпретируется как /data/logs .

Редактировать конфигурацию очистителя файлов

Рисунок 54. Редактирование конфигурации очистки файлов.

Перезагрузить

Нажатие кнопки «Сбросить настройки» возвращает конфигурацию программы очистки файлов к состоянию по умолчанию. Это действие удаляет ВСЕ пользовательские элементы.

Сбросить настройки очистки файлов

Рисунок 55. Сброс настроек очистки файлов.

Поддерживать

Сообщения об ошибках

Ваш вклад в OmniLab ATS помогает улучшить разработку инструмента, и нам очень важны ваши предложения! Подробную информацию о последней версии см. в примечаниях к выпуску OmniLab ATS . Чтобы сообщить об ошибках или предложить свои идеи, отправьте отчет об ошибке . Партнеры должны сообщать об ошибках или предложениях, используя свои партнерские каналы.