Тестовая станция 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 CLI.

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

Установить Докер
  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 CLI.

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

Установить Докер
  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 . Чтобы сообщить об ошибках или предложить предложения, отправьте отчет об ошибке . Партнеры должны сообщать об ошибках или предложениях, используя свои партнерские каналы.