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

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

Настройка 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.

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

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

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

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

Установить Питон 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

При первом запуске пользовательского интерфейса его появление может занять несколько минут. Интерфейс командной строки отображает веб-URL-адрес для доступа к пользовательскому интерфейсу в браузере. По умолчанию веб-URL — 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 вы увидите список всех доступных вам наборов конфигурации.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Запустить тест

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

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

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

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

Чтобы изменить или добавить новые тесты, см . Добавление тестов .

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

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

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

Настроить тестовый прогон

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

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

  • Имя — имя набора тестов, который вы хотите запустить.
  • Количество запусков — количество раз, которое этот тестовый запуск должен выполняться по расписанию. Тестовые запуски планируются с помощью Trade Federation , которая запускает до 20 тестовых запусков параллельно, если для этого есть возможности.
  • Максимальное количество повторов — максимальное количество повторных попыток запуска теста, если хотя бы один тест не пройден. Обычно для полного запуска CTS устанавливается значение 4–6 повторов для обработки нестабильных тестов.
  • Тайм-аут очереди . Если тестовый запуск остается в состоянии «В очереди» слишком долго, он автоматически отменяется. Укажите здесь время ожидания перед отменой. По умолчанию — 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
  • устройство_серийный
  • тип_устройства
  • имя хоста
  • продукт
  • Product_variant
  • sim_state

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

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

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

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

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

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

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

Рисунок 13. Изменение порядка действий.

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

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

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

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

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

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

Выбор тестовых ресурсов — URL-адрес веб-сайта

Рисунок 15. Выбор тестового ресурса — URL-адрес веб-сайта.

Если вы загрузили ресурсы в Google Grive, Google Cloud Storage (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 . Вы можете использовать несколько фильтров, разделяя их запятой. Фильтр возвращает все строки, содержащие точный текст (без совпадений подстроки) в любом столбце, за исключением Status и Created .

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

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

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

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

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

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

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

Статус тестового запуска

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

Статус тестового запуска

Рисунок 28. Статус тестового запуска.

Состояния тестового запуска:

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

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

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

Отменить тестовый прогон

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

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

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

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

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

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

Журналы тестовых запусков

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

Результаты по отдельным модулям находятся на вкладке «Результаты теста».

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

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

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

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

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

Чтобы просмотреть подробную информацию о тестовом запуске, например create_time , перейдите на вкладку «Конфигурация».

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

Рисунок 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. Введите полное имя класса Готовителя целей Торговой федерации , например, 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.

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

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

    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 для соответствия результат молнии.
SYSTEM_AVAILABLE_SPACE Запускайте действия в зависимости от доступного места в системе. threshold : запускает действие, когда доступное пространство падает ниже порогового значения, например 200 (B), 200KB , 200MB , 200GB , 2TB .

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

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

Конфиги

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

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

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

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

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

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

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

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

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

Отчеты об ошибках

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

,

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

Настройка 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.

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

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

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

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

Установить Питон 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

При первом запуске пользовательского интерфейса его появление может занять несколько минут. Интерфейс командной строки отображает веб-URL-адрес для доступа к пользовательскому интерфейсу в браузере. По умолчанию веб-URL — 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 вы увидите список всех доступных вам наборов конфигурации.

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

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

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

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

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

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

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

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

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

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

  1. Следуйте инструкциям, чтобы включить варианты разработчика и отладку .

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

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

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

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

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

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

Разные состояния устройства:

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

Запустить тест

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

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

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

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

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

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

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

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

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

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

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

  • Имя - Имя тестового набора, который вы хотите запустить.
  • Запустить количество - количество раз, когда этот тестовый запуск должен быть выполнен при планировании. Тестовые прогоны запланированы с использованием торговой федерации , которая проходит до 20 тестовых прогонов параллельно, если есть способность сделать это.
  • MAX RETRY - Максимальное количество раз, чтобы повторно повторить прогон для испытаний, если не менее одного теста не удается. Обычно это установлено 4–6 повторений для полного запуска CTS для обработки флеш -тестов.
  • Тайм -аут очереди - если тестовый прогон остается в состоянии очереди слишком долго, он автоматически отменяется. Укажите количество времени, чтобы подождать перед отменой здесь. По умолчанию 24 часа.
  • Команда - команда запустить тестовый набор. Вы можете ввести дополнительные аргументы командной строки здесь. Например, запустите конкретный модуль в CTS 8.1 с:

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

    cts --retry 0 -m ShortModuleName
    

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

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

    • Local - если запуск был запущен на текущем хосте, введите идентификатор тестового запуска при просмотре деталей тестового запуска.

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

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

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

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

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

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

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

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

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

Чтобы выбрать устройства по атрибутам, отличным от последователей устройств, вы можете вручную ввести «спецификации устройств». Например, чтобы выбрать 3 устройства, название продукта которого «Bramble», введите следующее:

product:bramble;product:bramble;product:bramble

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

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

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

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

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

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

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

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

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

Рисунок 13. Переупорядочение действий.

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

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

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

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

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

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

Селектор тестового ресурса - веб -URL

Рисунок 15. Селектор тестового ресурса - веб -URL.

Если у вас есть загруженные ресурсы в Google Grive, Google Cloud Storage (GCS) или другие каналы, вы также можете перейти на вкладку конкретного канала и выбрать там ресурсы. Вот пример для выбора ресурса из Google Drive.

Селектор ресурсов тестирования - Google Drive

Рисунок 16. Селектор испытаний - Google Drive.

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

Селектор ресурсов тестового

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

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

Селектор тестового ресурса - локальный хранилище файлов

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

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

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

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

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

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

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

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

Рисунок 20. Запуск тестового прогона.

Создать план испытаний

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

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

Рисунок 21. Создание плана испытаний.

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

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

  • Руководство - План тестирования создает тестовые запуска только тогда, когда пользователь нажимает план запуска плана тестирования на странице списка планов тестирования.
  • Периодический - план тестирования автоматически планирует прогоны тестирования в выбранном периодическом расписании. Например, планирование тестового запуска каждый день в 17:00.
  • Пользовательский - план тестирования Autmatically Test Runs на основе введенного выражения Cron . Например, чтобы запланировать тестовый запуск каждый день в 17:00, выражение Cron составляет 0 17 * * * .

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

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

Добавить тестовые люксы

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

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

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

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

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

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

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

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

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

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

Рисунок 25. Установка испытательных ресурсов.

Просмотреть тестовые прогоны

Список пробега тестового пробега

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

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

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

Список пробега тестового пробега

Рисунок 26. Список прогонов тестирования.

Тестовый запуск детали

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

Тестовый запуск детали

Рисунок 27. Тестовый запуск детали.

Статус теста

Прогресс для тестового прогона показан в разделе статуса. Если есть связанное сообщение, такое как прогресс загрузки, разумная причина или сообщение об ошибке, оно также отображается здесь.

Статус теста

Рисунок 28. Статус теста.

Государства тестового прогона:

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

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

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

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

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

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

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

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

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

Вы можете просмотреть живые и торговые журналы на вкладке журналов.

Тестовые бревен

Рисунок 31. Вкладка журналов.

Результаты для отдельных модулей находятся на вкладке результатов теста.

Вкладка результатов теста

Рисунок 32. Вкладка результатов теста.

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

Тестовая вкладка ресурсов

Рисунок 33. Тестовая вкладка ресурсов.

Чтобы увидеть детали тестового запуска, таких как Create_time , перейдите на вкладку Config.

Test Config Tab

Рисунок 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

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

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

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

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

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

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

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

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

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

  1. Нажмите на новое действие устройства .

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

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

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

    Имя действия устройства

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

  3. Нажмите «Добавить целевой» .

  4. Введите целевой федерацию торговой федерации , например, com.android.tradefed.targetprep.RunHostCommandTargetPreparer .

    Добавьте целевой подготовку

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

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

    Список целевых препаратов

    Рисунок 40. Список целевых препаратов.

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

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

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

  6. Чтобы добавить опцию, нажмите «Добавить опцию« Целевой препарат » и введите требуемые значения.

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

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

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

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

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

  8. Нажмите обновление .

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

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

Управлять тестами

Изменить тест

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

Изменить тест

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

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

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

Создать тест

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

Скопируйте тест

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

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

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

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

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

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

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

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

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

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

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

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. Check Controller доступен по адресу 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 в соответствии с Результат молнии.
SYSTEM_AVAILABLE_SPACE Запускают действия на основе доступного пространства в системе. threshold : триггерное действие, когда доступное пространство падает ниже порога, например, 200 (b), 200KB , 200MB , 200GB , 2TB .

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

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

Конфиги

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

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

Редактировать конфигурацию File Cleaner

Рисунок 54. Изменить конфигурацию очистителя файлов.

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

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

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

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

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

Отчеты об ошибках

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

,

Omnilab ATS - это инструмент тестирования, который разработчики Android и тестовые инженеры могут использовать для использования пользовательского интерфейса для запуска стандартных Android Test Suites, таких как тестовый набор для совместимости Android (CTS) . Этот инструмент действует как веб-интерфейс для различных тестовых рамок, таких как торговая федерация (TF) и Google Moboly , что позволяет вам запускать CTS и многократные тесты на наборе тестовых устройств с минимальной настройкой, а также установить график для Непрерывно запустить тесты.

Настройка ATS Omnilab

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

Omnilab ATS использует исходный код из этих мест:

Установите Omnilab ATS

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

Требования для CTS найдены на Source.android.com .

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

Есть два способа установить ATS Omnilab:

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

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

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

  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 в качестве пользователя, не являющегося корнями .

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

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

Omnilab ATS CLI проверяется против версий 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

Получите amnilab ats cli

Загрузите пакет интерфейса командной строки (CLI) здесь.

Начните Omnilab ATS

Начните Omnilab ATS со следующей командой:

mtt start

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

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

Чтобы обновить текущую версию, запустите:

mtt start --force_update

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

mtt stop

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

mtt --help

Резервное копирование и восстановить базу данных

Чтобы подтвердить базу данных ATS Omnilab, остановите приложение и запустите следующую команду, которая подключает текущую базу данных в 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"

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

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

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

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

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

Рисунок 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 WiFi и опциональный Wi-Fi PSK .

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

Рисунок 5. Настройки горячей точки Wi-Fi.

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

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

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

  1. Следуйте инструкциям, чтобы включить варианты разработчика и отладку .

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

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

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

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

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

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

Разные состояния устройства:

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

Запустить тест

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

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

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

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

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

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

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

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

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

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

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

  • Имя - Имя тестового набора, который вы хотите запустить.
  • Запустить количество - количество раз, когда этот тестовый запуск должен быть выполнен при планировании. Тестовые прогоны запланированы с использованием торговой федерации , которая проходит до 20 тестовых прогонов параллельно, если есть способность сделать это.
  • MAX RETRY - Максимальное количество раз, чтобы повторно повторить прогон для испытаний, если не менее одного теста не удается. Обычно это установлено 4–6 повторений для полного запуска CTS для обработки флеш -тестов.
  • Тайм -аут очереди - если тестовый прогон остается в состоянии очереди слишком долго, он автоматически отменяется. Укажите количество времени, чтобы подождать перед отменой здесь. По умолчанию 24 часа.
  • Команда - команда запустить тестовый набор. Вы можете ввести дополнительные аргументы командной строки здесь. Например, запустите конкретный модуль в CTS 8.1 с:

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

    cts --retry 0 -m ShortModuleName
    

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

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

    • Local - если запуск был запущен на текущем хосте, введите идентификатор тестового запуска при просмотре деталей тестового запуска.

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

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

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

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

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

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

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

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

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

Чтобы выбрать устройства по атрибутам, отличным от последователей устройств, вы можете вручную ввести «спецификации устройств». Например, чтобы выбрать 3 устройства, название продукта которого «Bramble», введите следующее:

product:bramble;product:bramble;product:bramble

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

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

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

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

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

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

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

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

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

Рисунок 13. Переупорядочение действий.

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

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

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

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

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

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

Селектор тестового ресурса - веб -URL

Рисунок 15. Селектор тестового ресурса - веб -URL.

Если у вас есть загруженные ресурсы в Google Grive, Google Cloud Storage (GCS) или другие каналы, вы также можете перейти на вкладку конкретного канала и выбрать там ресурсы. Вот пример для выбора ресурса из Google Drive.

Селектор ресурсов тестирования - Google Drive

Figure 16. Test Resource Selector - Google Drive.

In addition to just selecting files, wildcard characters are also supported in Filename field. The documentation can be found here .

Test Resource Selector - Wildcard Pattern Support

Figure 17. Test Resource Selector - Wildcard pattern support.

You can also select a file from OmniLab ATS's local file storage. You can upload files into this storage, or directly use local files and directories .

Test Resource Selector - Local File Store

Figure 18. Test Resource Selector - Local file store.

Add rerun configs

You can schedule reruns that start after the primary run is complete and load its results, but can use different device, actions, or resources.

Add Rerun Configs

Figure 19. Adding Rerun Configs.

Start a test run

After you enter the information needed for the test run, click Start Test Run . If all of the information is valid, the test run starts, and you're redirected to a page to view the details and progress of the test run.

Start Test Run

Figure 20. Starting a test run.

Create a test plan

Test plans are used to create test runs on a periodic schedule. For example, running CTS 9.0 every day at 5 PM. To create a new test plan, click Create a new test plan .

Create Test Plan

Figure 21. Creating a test plan.

Configure test plan

Enter the name of the test plan and any labels you want to add. Then select a schedule to use.

  • Manual - The test plan creates test runs only when a user clicks Run test plan in the test plan list page.
  • Periodic - The test plan automatically schedules test runs on the periodic schedule selected. For example, scheduling a test run every day at 5:00 PM.
  • Custom - The test plan autmatically schedules test runs based on the cron expression entered. For example, to schedule a test run every day at 5:00 PM, the cron expression is 0 17 * * * .

Configure Test Plan

Figure 22. Configuring a test plan.

Add test suites

Add tests suites you want to be scheduled by the test plan by clicking + Add test run configuration . Select a test suite from the Name dropdown and click Next step . Then select the devices you would like to run the test on and click Add Configuration . You can add multiple configurations for each test plan.

Configure Test Run

Figure 23. Configuring a test run.

Add device actions

Add the device actions you want to be executed before each test run. See Adding device actions for more details.

Add Device Actions

Figure 24. Adding device actions.

Set test resources

Adding test resources to test plans is the same as adding them to individual test runs. See Setting test resources for more details.

Set Test Resources

Figure 25. Setting test resources.

View test runs

Test run list

View the list of scheduled test runs on the Test Runs page. Click View to see more details about a test run.

You can also filter the list by entering a string into the filter bar and pressing the Enter key. You can use multiple filters by separating them with a comma. The filter returns all rows that contain the exact text (no substring matching) in any column, excluding Status and Created .

An empty filter returns all rows. There's currently no way to filter for rows with empty values.

Test Run List

Figure 26. Test run list.

Test run details

You can view the details of a test run here, such as the status, logs, and results.

Test Run Details

Figure 27. Test run details.

Test run status

The progress for a test run is shown in the Status section. If there's a related message, such as download progress, cancellation reason, or error message, it's shown here as well.

Test Run Status

Figure 28. Test run status.

The test run states are:

  • Pending - Required resources are being downloaded.
  • Queued - The test is ready to be run when a device becomes available.
  • Running - The test is running on an allocated device.
  • Completed - The test has completed and reported its results.
  • Canceled - The test was canceled by the user or timed out while trying to find available devices.
  • Error - An error occurred that prevented the test from running.

Cancel a test run

If the test run hasn't completed, you can cancel it by clicking Cancel and then clicking Yes in the confirmation dialog. Test runs are also automatically canceled if they remain in the Queued state longer than the queue_timeout_seconds field. Canceling a test run while in a Running state might take a few minutes to take effect.

Cancel Test Run

Figure 29. Canceling a test run.

Test run results

After a test run has finished, results are collected and displayed. You can view additional details by clicking the arrow for each run. Click View Output Files to see the test artifacts collected, such as test_result.xml and test_result_failures.html .

Test Run Results

Figure 30. Test run results.

You can view live host and Tradefed logs in the Logs tab.

Test Run Logs

Figure 31. Logs tab.

The results for individual modules are on the Test Results tab.

Test Results Tab

Figure 32. Test Results tab.

You can download the files used as test resources by clicking Open in the Test Resources tab.

Test Resources Tab

Figure 33. Test Resources tab.

To see the details of the test run, such as create_time , go to the Config tab.

Test Config Tab

Figure 34. Config tab.

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

Manage config files

OmniLab ATS uses configuration files written in YAML to load predefined options such as tests, build channels, and device actions. Here's an example config file:

// 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

When you set up your OmniLab ATS instance, you can share your configuration with other users by exporting it as a file. To do this, go to the Settings page and click Export in the top right.

Config File Management

Figure 35. Configuration file management.

After your configuration file is downloaded, share the file with other users. They can add the configuration file to their OmniLab ATS instance by clicking Import and selecting the config file.

Create a new device action

Device actions are used for automating the device setup process. Actions are scripts executed on each device the test is running on before each test run, including before retries. To view a list of available device actions, go to the Settings page and click the Device Actions tab. Several device actions come already configured, such as rebooting and flashing.

Device Actions tab

Figure 36. Device Actions tab.

Add a new device action

  1. Click New device action .

    New Device Action button

    Figure 37. New device action button.

  2. Enter a name and description.

    Device Action name

    Figure 38. Device action name.

  3. Click Add Target Preparer .

  4. Enter the Trade Federation Target Preparer full class name, for example, com.android.tradefed.targetprep.RunHostCommandTargetPreparer .

    Add Target Preparer

    Figure 39. Adding a target preparer.

    A list of available target preparers can be found in the com.android.tradefed.targetprep reference.

    Target Preparer List

    Figure 40. Target Preparer list.

  5. Add any options to use with the target preparer. To view available options, check targetprep for the source code for each target preparer in AOSP:

    Action Option Example

    Figure 41. Action option example.

  6. To add an option, click Add Target Preparer Option and enter the required values.

    Action Command Example

    Figure 42. Action command example.

  7. Define the test resources that are needed to execute the device action, for example, build images for flashing. To add a resource definition, click Add Test Resource and fill in the required fields. If you know where your files are located, you can provide a default download URL by clicking browse . If the target preparers accept directory as test resource, select Decompress . Then specify the relative Destination directory under the temporary working directory and the File Names to be decompressed. If no file names are given, all files are decompressed from the test resource.

    Action Test Resources

    Figure 43. Action test resources.

  8. Click Update .

    Action Save Changes

    Figure 44. Action save changes.

Manage tests

Edit a test

To edit a saved test, go to the Tests page and click Edit on the row of the test you want to modify. After changing the test configuration, click Update .

Edit a test

Figure 45. Editing a test.

Add a new test

To add a new test, go to the Tests page and click Create a New Test . Enter the appropriate information and click Create .

Создать тест

Figure 46. Creating a test.

Copy a test

Figure 47. Copying a test.

Export host configurations

After you configure a host, you can export the host's configurations to a file. You can upload this file to other hosts to copy the saved configurations.

To export a host's configurations, go to the Settings page and click Export in the top right corner.

Exporting host configs

Figure 48. Exporting a host config.

To import a host configuration file, go to the Settings page and click Import in the top right corner.

Importing host configs

Figure 49. Importing a host config.

Use local files and directories

Starting in version R11, files in the $HOME/.ats_storage directory are automatically accessible in OmniLab ATS. Copy or move a file into that directory, then you can select it from the Local File tab when scheduling a test run.

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

Selecting a local file

Figure 50. Selecting a file from the $HOME/.ats_storage directory.

You can mount additional directories into the local file store with the --mount_local_path flag.

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

Additional mounted directories

Figure 51. Additional directories mounted in the local file store.

Enable multi-host mode

With Multi-host mode, users can use a single ATS controller host to manage the devices and tests on multiple ATS worker hosts.

Multi-host mode architecture

Figure 52. Multi-host mode architecture.

  1. To start the ATS controller, use the following command:

    mtt start --operation_mode=ON_PREMISE
    
  2. Check controller is accessible at http://${CONTROLLER_HOSTNAME}:8000 .

  3. To start the workers, use the following command:

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

If your network doesn't allow hosts to communicate with each other, you need to follow the more advanced setup instructions below on ATS worker.

  1. Connect the two hosts using SSH tunnels. Select ports for the primary and file server ports, for example, 9000 and 9006.

    ssh -L ATS_PORT:localhost:8000 -L FS_PORT:localhost:8006 CONTROLLER_HOSTNAME
    
  2. Configure and start 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
    

File cleaner

The file cleaner is a cron job that runs hourly to clean up files based on user-defined configurations. ATS has two default configurations to archive test run results and delete temporary files. This guide explains how to customize the policies and configs to manage your files effectively.

Политика

A policy defines the operation to be performed on files or directories, and the criteria to select targets. Available operations are shown in the table:

Тип операции Параметры
ARCHIVE remove_file : If true , remove the file after archiving.
DELETE

Criteria are based on file attributes and system information. Available criteria are shown in the table:

Criterion type Описание Параметры
LAST_MODIFIED_TIME Filter files based on their last modification date and time. ttl : Various kinds of time expressions are supported, for example, 10m , 2h , 7 days , 4w . See pytimeparse for supported formats.
LAST_ACCESS_TIME Filter files based on their last access date and time. The same as LAST_MODIFIED_TIME .
NAME_MATCH Filter files based on their name using regular expression. pattern : Regular expression, for example, [a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}\.zip to match result zips.
SYSTEM_AVAILABLE_SPACE Trigger actions based on the available space on the system. threshold : Trigger action when the available space falls below the threshold, for example, 200 (B), 200KB , 200MB , 200GB , 2TB .

New file cleaner policy

Figure 53. Add a new file cleaner policy.

Конфиги

A config combines one or more policies with specific directories. The files and directories within the specified directories are processed based on the defined policies. Policies are applied in the order they appear in the config.

All target directories must be located under the /data directory. If your config specifies the target directory as logs , it's interpreted as /data/logs .

Edit file cleaner config

Figure 54. Edit the file cleaner config.

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

Clicking Reset Settings reverts the file cleaner configuration to its default state. This action clears ALL custom items.

Reset file cleaner settings

Figure 55. Reset file cleaner settings.

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

Отчеты об ошибках

Your contribution to OmniLab ATS helps improve the development of the tool, and we want your input! See the OmniLab ATS release notes for details on the latest release. To report bugs or offer suggestions, file a bug report . Partners should report bugs or suggestions using their partner channels.