OmniLab ATS — это инструмент тестирования, который разработчики и инженеры по тестированию Android могут использовать для использования пользовательского интерфейса для запуска стандартных наборов тестов Android, таких как Android Compatibility Test Suite (CTS) . Этот инструмент действует как веб-интерфейс для различных тестовых фреймворков, таких как Trade Federation (TF) и Google Mobly , позволяя вам запускать CTS и многоустройственные тесты на наборе тестовых устройств с минимальной настройкой, а также устанавливать расписание для непрерывного запуска тестов.
Настройка OmniLab ATS
В этом разделе объясняется, как установить и настроить OmniLab ATS.
OmniLab ATS использует исходный код из следующих мест:
- Исходный код OmniLab ATS
- Исходный код кластера TradeFed
Установить OmniLab ATS
Соблюдайте все требования к оборудованию и программному обеспечению для проводимых вами тестовых наборов.
Требования для CTS можно найти на source.android.com .
Для OmniLab ATS нет дополнительных требований к оборудованию, но мы рекомендуем использовать требования к хосту CTS в качестве отправной точки.
Существует два способа установки OmniLab ATS:
- Запустите программу установки .
- Установите его вручную , что потребует установки множества программ и ресурсов.
Установить с помощью программы-установщика
В Ubuntu 20.04+ программа-установщик устанавливает и настраивает все программы и ресурсы, необходимые для работы OmniLab ATS.
Чтобы использовать программу установки:
Запустите программу установки:
curl https://storage.googleapis.com/android-mtt.appspot.com/prod/install.sh | bash
Запустите
mtt version
, чтобы проверить установленную версию OmniLab ATS CLI.
Установить вручную
Установить Докер
Следуйте инструкциям по установке Docker Community Edition (CE) на вашем компьютере Linux.
Чтобы управлять Docker как пользователь без прав root, следуйте инструкциям после установки .
Возможно, вам придется перезапустить окно терминала или выйти и снова войти в систему, чтобы изменения разрешений вступили в силу.
Установить Питон 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
Загрузите пакет интерфейса командной строки (CLI) здесь.
Запустить OmniLab ATS
Запустите OmniLab ATS с помощью следующей команды:
mtt start
При первом запуске пользовательского интерфейса может потребоваться несколько минут, чтобы он появился. CLI отображает веб-URL для доступа к пользовательскому интерфейсу в браузере. По умолчанию веб-URL — localhost:8000
. При необходимости вы можете изменить порт по умолчанию при запуске с помощью флага --port
.
Если доступна более новая версия, вы можете обновить ее до текущей версии. Вы можете проверить Release Notes для последних выпусков.
Для обновления до текущей версии выполните:
mtt start --force_update
Чтобы остановить приложение, выполните:
mtt stop
Чтобы просмотреть список других команд, используйте:
mtt --help
Резервное копирование и восстановление базы данных
Чтобы создать резервную копию базы данных OmniLab ATS, остановите приложение и выполните следующую команду, которая создаст резервную копию текущей базы данных в файле TAR с именем mtt-backup.tar
в вашем домашнем каталоге:
docker run --rm --mount source=mtt-data,target=/data -v ~:/out ubuntu bash -c "cd /data && tar cvf /out/mtt-backup.tar ."
Для восстановления выполните следующую команду перед запуском приложения:
docker run --rm --mount source=mtt-data,target=/data -v ~:/out ubuntu bash -c "cd /data && tar xvf /out/mtt-backup.tar"
Мастер настройки
После первой установки и запуска OmniLab ATS мастер настройки проведет вас через несколько шагов, чтобы помочь вам настроить инструмент для вашей среды. Любые изменения, которые вы внесете здесь, можно будет перенастроить позже на странице настроек.
Восстановить резервную копию конфигурации
Если у вас есть резервная копия файла конфигурации с другого хоста OmniLab ATS, вы можете загрузить файл, чтобы скопировать любые измененные конфигурации с этого хоста, нажав кнопку « Загрузить файл» .
Рисунок 1. Восстановление резервной копии конфигурации.
Установить учетную запись службы по умолчанию
Вы можете задать учетную запись службы , которую OmniLab ATS использует по умолчанию при доступе к вашим ресурсам (например, Google Cloud Storage, Google Drive). Чтобы аутентифицировать учетную запись службы, нажмите «Загрузить ключ учетной записи службы» и выберите файл ключа JSON вашей учетной записи службы.
Рисунок 2. Настройка учетной записи службы.
После успешной аутентификации учетной записи службы адрес электронной почты учетной записи появится в правом верхнем углу страницы. Чтобы изменить учетную запись службы, щелкните имя учетной записи, удалите текущую учетную запись по умолчанию и загрузите новый ключ учетной записи службы.
Рисунок 3. Изменение учетной записи службы.
Импорт наборов конфигураций
Набор конфигураций — это набор конфигураций для запуска тестовых наборов, включая связанные действия устройств и каналы сборки. Наборы конфигураций размещаются в определенном контейнере Google Cloud Storage (GCS). После аутентификации канала сборки GCS с помощью вашего аккаунта Google вы увидите список всех доступных вам наборов конфигураций.
Выберите любые наборы конфигураций, которые вы хотите добавить на хост тестовой станции, и нажмите «Импортировать выбранное» .
Рисунок 4. Импорт набора конфигураций.
Включить настройки Wi-Fi
Некоторые тесты CTS требуют, чтобы ваше устройство было подключено к точке доступа Wi-Fi. Чтобы выбрать сеть Wi-Fi, введите WiFi SSID и опциональный WiFi PSK .
Рисунок 5. Настройки точки доступа Wi-Fi.
После завершения работы мастера настройки страница перезагрузится с применением новых настроек.
Подключить устройство
Для использования устройства для тестирования необходимо включить отладку по USB. Чтобы включить отладку:
Следуйте инструкциям в разделе Включение параметров разработчика и отладки .
Если вы планируете использовать тестовые сборки Android с предварительно загруженными пользовательскими ключами ADB, поместите пользовательские файлы
.adb_key
в каталог~/.android/
.Файлы автоматически загружаются и передаются в ADB для автоматического включения отладки по USB после прошивки устройства для устройств, на которых запущены эти сборки.
Подключите устройство к хост-компьютеру с помощью USB.
Устройство появится на вкладке OmniLab ATS Devices в течение одной минуты после обновления веб-интерфейса. Вы также можете просмотреть состояние устройств на этой вкладке.
Рисунок 6. Подключение устройства.
Различные состояния устройства:
- Доступно — устройство подключено и готово к тестированию.
- Выделено - Устройство подключено и выполняет тест. Каждое устройство может выполнять только один тест за раз, поэтому устройство должно завершить текущий тест перед запуском нового.
Провести тест
Выберите тест
OmniLab ATS поставляется с набором предустановленных конфигураций CTS. Чтобы запустить один из этих тестов, перейдите на вкладку Test Suites и нажмите Run test для выбранного теста.
Рисунок 7. Выбор теста.
Чтобы изменить или добавить новые тесты, см. раздел Добавление тестов .
Настроить тестовый запуск
Отредактируйте параметры, которые будут использоваться для этого конкретного тестового запуска. Большинство параметров предварительно заполнены значениями, определенными в выбранной конфигурации теста.
Этот шаг можно выполнить, используя значения по умолчанию, но вы можете изменить любые параметры, такие как Max Retry и Command , в соответствии со своими потребностями.
Рисунок 8. Настройка тестового запуска.
Параметры тестового запуска:
- Имя — имя набора тестов, который вы хотите запустить.
- Run Count - Количество раз, которое этот тестовый запуск должен быть выполнен по расписанию. Тестовые запуски планируются с помощью Trade Federation , которая запускает до 20 тестовых запусков параллельно, если есть такая возможность.
- Max Retry — максимальное количество повторных попыток тестового запуска, если хотя бы один тест не пройден. Обычно устанавливается на 4–6 повторных попыток для полного запуска CTS, чтобы справиться с нестабильными тестами.
- Queue Timeout - Если тестовый запуск остается в состоянии Queued слишком долго, он автоматически отменяется. Укажите здесь время ожидания перед отменой. Значение по умолчанию - 24 часа.
Команда — команда для запуска тестового набора. Здесь можно ввести дополнительные аргументы командной строки. Например, запустите определенный модуль в CTS 8.1 с помощью:
cts-suite -m ShortModuleName
Retry Command — команда для повторной попытки тестового набора. Здесь можно добавить дополнительные аргументы командной строки. Например, чтобы повторить только определенный модуль в CTS 8.1, используйте:
cts --retry 0 -m ShortModuleName
Аргументы повтора могут отличаться от доступных в исходной команде, поэтому проверьте поддерживаемые параметры на официальном сайте для выбранного набора тестов.
Предыдущий тестовый запуск . Если вы хотите повторно запустить предыдущий тестовый запуск:
Локально — если запуск был запущен на текущем хосте, введите идентификатор тестового запуска, который отображается при просмотре сведений о тестовом запуске.
Рисунок 9. Локальный предыдущий тестовый запуск.
Удаленно. Если запуск был запущен на другом хосте, загрузите файл с результатами теста, выбрав Удаленно , нажав Загрузить файл с результатами теста и выбрав файл из локального хранилища.
Рисунок 10. Удаленный предыдущий тестовый запуск.
Выберите устройства
Щелкните флажки, чтобы выбрать устройства, которые будут выделены для запуска тестового набора. Количество шардов должно автоматически измениться в соответствии с количеством выбранных устройств.
Рисунок 11. Выбор устройств.
Чтобы выбрать устройства по атрибутам, отличным от серийных номеров устройств, вы можете вручную ввести «Спецификации устройства». Например, чтобы выбрать 3 устройства с названием продукта «bramble», введите следующее:
product:bramble;product:bramble;product:bramble
Поддерживаемые атрибуты:
- build_id
- устройство_серийный
- тип_устройства
- имя хоста
- продукт
- вариант_продукта
- sim_state
Все выбранные устройства должны находиться в состоянии Доступно для выполнения тестового прогона, и все они переключаются в состояние Выделено при выполнении тестового прогона. Тестовый прогон находится в состоянии В очереди , пока он ожидает, когда устройства станут доступны.
Добавить действия устройства
Действия устройства — это скрипты, которые можно выполнять перед каждым тестовым запуском. Некоторые действия устройства уже настроены, например, перепрошивка и перезагрузка. Чтобы создать новые действия устройства, см. раздел Создание нового действия устройства .
Рисунок 12. Действия устройства.
Чтобы добавить действие устройства в тестовый запуск, нажмите Добавить новое действие , установите флажки для действий, которые нужно добавить, и нажмите Добавить действие(я) . Действия устройства выполняются последовательно. Вы можете изменить порядок действий, перетаскивая их.
Рисунок 13. Изменение порядка действий.
Установить тестовые ресурсы
Тестовые ресурсы — это файлы, необходимые для выполнения тестового запуска. Например, для запуска CTS требуется файл android-cts*.zip
, а для прошивки устройства требуется предоставить образ сборки.
URL-адрес для загрузки zip-файла тестового набора должен по умолчанию соответствовать ссылкам Google Drive, предоставленным партнерам. Вы можете выбрать другой файл, нажав кнопку обзора . Во всплывающем окне вы можете ввести ссылку для загрузки файла, использовать файл из аутентифицированного канала сборки или загрузить файл для использования из локального хранилища.
Рисунок 14. Тестовые ресурсы.
Ниже представлено всплывающее окно для выбора тестового ресурса по веб-URL. Вы можете ввести ссылку на загрузку URL и нажать кнопку Выбрать для подтверждения выбора.
Рисунок 15. Селектор тестовых ресурсов — веб-URL.
Если вы загрузили ресурсы в Google Grive, Google Cloud Storage (GCS) или другие каналы, вы также можете перейти на вкладку определенного канала и выбрать ресурсы там. Вот пример выбора ресурса из Google Drive.
Рисунок 16. Тестовый селектор ресурсов — Google Диск.
Помимо простого выбора файлов, в поле Filename также поддерживаются подстановочные знаки. Документацию можно найти здесь .
Рисунок 17. Тестовый селектор ресурсов — поддержка шаблонов подстановочных знаков.
Вы также можете выбрать файл из локального хранилища файлов OmniLab ATS. Вы можете загрузить файлы в это хранилище или напрямую использовать локальные файлы и каталоги .
Рисунок 18. Селектор тестовых ресурсов — локальное хранилище файлов.
Добавить конфигурации повторного запуска
Вы можете запланировать повторные запуски, которые начнутся после завершения основного запуска, и загрузить его результаты, но можете использовать другие устройства, действия или ресурсы.
Рисунок 19. Добавление конфигураций повторного запуска.
Начать тестовый запуск
После ввода информации, необходимой для тестового запуска, нажмите Start Test Run . Если вся информация верна, тестовый запуск начинается, и вы перенаправляетесь на страницу для просмотра деталей и хода тестового запуска.
Рисунок 20. Запуск тестового запуска.
Создайте план тестирования
Планы тестирования используются для создания тестовых запусков по периодическому графику. Например, запуск CTS 9.0 каждый день в 5 вечера. Чтобы создать новый план тестирования, нажмите Создать новый план тестирования .
Рисунок 21. Создание плана тестирования.
Настроить план тестирования
Введите название плана тестирования и любые метки, которые вы хотите добавить. Затем выберите расписание для использования.
- Вручную — план тестирования создает тестовые запуски только тогда, когда пользователь нажимает кнопку «Запустить план тестирования» на странице списка планов тестирования.
- Периодический - План тестирования автоматически планирует тестовые запуски по выбранному периодическому графику. Например, планирование тестового запуска каждый день в 5:00 вечера.
- Custom - Тестовый план автоматически планирует тестовые запуски на основе введенного выражения cron . Например, чтобы запланировать тестовый запуск каждый день в 5:00 вечера, выражение cron будет
0 17 * * *
.
Рисунок 22. Настройка плана тестирования.
Добавить тестовые наборы
Добавьте тестовые наборы, которые вы хотите запланировать по плану тестирования, нажав + Добавить конфигурацию тестового запуска . Выберите тестовый набор из раскрывающегося списка Имя и нажмите Следующий шаг . Затем выберите устройства, на которых вы хотите запустить тест, и нажмите Добавить конфигурацию . Вы можете добавить несколько конфигураций для каждого плана тестирования.
Рисунок 23. Настройка тестового запуска.
Добавить действия устройства
Добавьте действия устройства, которые вы хотите выполнять перед каждым тестовым запуском. Подробнее см. в разделе Добавление действий устройства .
Рисунок 24. Добавление действий устройства.
Установить тестовые ресурсы
Добавление тестовых ресурсов в тестовые планы аналогично добавлению их в отдельные тестовые запуски. Подробнее см. в разделе Настройка тестовых ресурсов .
Рисунок 25. Настройка тестовых ресурсов.
Посмотреть тестовые прогоны
Список тестовых запусков
Просмотрите список запланированных тестовых запусков на странице Тестовые запуски. Нажмите Просмотр , чтобы увидеть больше подробностей о тестовом запуске.
Вы также можете отфильтровать список, введя строку в строку фильтра и нажав клавишу Enter . Вы можете использовать несколько фильтров, разделив их запятой. Фильтр возвращает все строки, которые содержат точный текст (без совпадений подстрок) в любом столбце, за исключением Status и Created .
Пустой фильтр возвращает все строки. В настоящее время нет возможности отфильтровать строки с пустыми значениями.
Рисунок 26. Список тестовых запусков.
Подробности тестового прогона
Здесь вы можете просмотреть подробную информацию о тестовом запуске, такую как статус, журналы и результаты.
Рисунок 27. Подробности тестового запуска.
Статус тестового прогона
Ход выполнения тестового запуска отображается в разделе «Статус». Если есть связанное сообщение, например, ход загрузки, причина отмены или сообщение об ошибке, оно также отображается здесь.
Рисунок 28. Статус тестового запуска.
Состояния тестового прогона:
- Ожидание — необходимые ресурсы загружаются.
- В очереди — тест готов к запуску, как только устройство станет доступным.
- Выполняется — тест выполняется на выделенном устройстве.
- Завершено — тест завершен, и его результаты сообщены.
- Отменено — тест был отменен пользователем или истекло время ожидания при попытке найти доступные устройства.
- Ошибка . Произошла ошибка, из-за которой тест не был запущен.
Отменить тестовый запуск
Если тестовый запуск не завершен, вы можете отменить его, нажав Отмена , а затем Да в диалоговом окне подтверждения. Тестовые запуски также автоматически отменяются, если они остаются в состоянии В очереди дольше, чем поле queue_timeout_seconds . Отмена тестового запуска в состоянии Выполняется может занять несколько минут, прежде чем изменения вступят в силу.
Рисунок 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, нажав Import и выбрав файл конфигурации.
Создать новое действие устройства
Действия устройства используются для автоматизации процесса настройки устройства. Действия — это скрипты, выполняемые на каждом устройстве, на котором выполняется тест, перед каждым запуском теста, в том числе перед повторными попытками. Чтобы просмотреть список доступных действий устройства, перейдите на страницу настроек и щелкните вкладку Действия устройства. Несколько действий устройства уже настроены, например перезагрузка и перепрошивка.
Рисунок 36. Вкладка «Действия устройства».
Добавить новое действие устройства
Нажмите Новое действие устройства .
Рисунок 37. Кнопка действия нового устройства.
Введите имя и описание.
Рисунок 38. Название действия устройства.
Нажмите «Добавить целевого подготовителя» .
Введите полное имя класса Trade Federation Target Preparer, например,
com.android.tradefed.targetprep.RunHostCommandTargetPreparer
.Рисунок 39. Добавление целевого препаратора.
Список доступных целевых подготовителей можно найти в справочнике com.android.tradefed.targetprep .
Рисунок 40. Список подготовителей целей.
Добавьте любые параметры для использования с целевым подготовителем. Чтобы просмотреть доступные параметры, проверьте targetprep для исходного кода для каждого целевого подготовителя в AOSP:
Рисунок 41. Пример варианта действия.
Чтобы добавить опцию, нажмите « Добавить опцию целевого подготовительного устройства» и введите требуемые значения.
Рисунок 42. Пример команды действия.
Определите тестовые ресурсы, необходимые для выполнения действия устройства, например, создания образов для прошивки. Чтобы добавить определение ресурса, нажмите Добавить тестовый ресурс и заполните необходимые поля. Если вы знаете, где находятся ваши файлы, вы можете указать URL-адрес загрузки по умолчанию, нажав Обзор . Если целевые подготовители принимают каталог в качестве тестового ресурса, выберите Распаковать . Затем укажите относительный целевой каталог во временном рабочем каталоге и Имена файлов для распаковки. Если имена файлов не указаны, все файлы распаковываются из тестового ресурса.
Рисунок 43. Ресурсы теста действий.
Нажмите Обновить .
Рисунок 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. Дополнительные каталоги, смонтированные в локальном хранилище файлов.
Включить многохостовой режим
В режиме Multi-host пользователи могут использовать один хост-контроллер ATS для управления устройствами и тестами на нескольких рабочих хостах ATS.
Рисунок 52. Архитектура многохостового режима.
Для запуска контроллера ATS используйте следующую команду:
mtt start --operation_mode=ON_PREMISE
Проверьте, доступен ли контроллер по адресу
http://${CONTROLLER_HOSTNAME}:8000
.Для запуска воркеров используйте следующую команду:
mtt start --control_server_url=http://CONTROLLER_HOSTNAME:8000 --operation_mode=ON_PREMISE
Если ваша сеть не позволяет хостам взаимодействовать друг с другом, вам необходимо следовать более сложным инструкциям по настройке, приведенным ниже на ATS Worker.
Соедините два хоста с помощью SSH-туннелей. Выберите порты для основного и файлового сервера, например, 9000 и 9006.
ssh -L ATS_PORT:localhost:8000 -L FS_PORT:localhost:8006 CONTROLLER_HOSTNAME
Настройте и запустите ATS.
DOCKER_GATEWAY_IP_ADDRESS=$(ip -4 addr show dev docker0 | grep -Eo 'inet [.0-9]+/' | grep -Eo '[.0-9]+')
socat tcp-listen:ATS_PORT,bind="${DOCKER_GATEWAY_IP_ADDRESS}",reuseaddr,fork tcp-connect:127.0.0.1:ATS_PORT &
socat tcp-listen:FS_PORT,bind="${DOCKER_GATEWAY_IP_ADDRESS}",reuseaddr,fork tcp-connect:127.0.0.1:FS_PORT &
mtt start --control_server_url=http://${DOCKER_GATEWAY_IP_ADDRESS}:ATS_PORT \ --control_file_server_url=http://${DOCKER_GATEWAY_IP_ADDRESS}:FS_PORT \ --operation_mode=ON_PREMISE
Очиститель файлов
Очиститель файлов — это задание cron, которое запускается каждый час для очистки файлов на основе пользовательских конфигураций. ATS имеет две конфигурации по умолчанию для архивации результатов тестового запуска и удаления временных файлов. В этом руководстве объясняется, как настраивать политики и конфигурации для эффективного управления файлами.
Политики
Политика определяет операцию, которая будет выполнена над файлами или каталогами, а также критерии выбора целей. Доступные операции показаны в таблице:
Тип операции | Параметры |
---|---|
ARCHIVE | remove_file : Если true , удалить файл после архивации. |
DELETE |
Критерии основаны на атрибутах файла и системной информации. Доступные критерии показаны в таблице:
Тип критерия | Описание | Параметры |
---|---|---|
LAST_MODIFIED_TIME | Фильтрация файлов по дате и времени их последнего изменения. | ttl : Поддерживаются различные виды выражений времени, например, 10m , 2h , 7 days , 4w . Поддерживаемые форматы см. в pytimeparse . |
LAST_ACCESS_TIME | Фильтрация файлов по дате и времени последнего доступа. | То же самое, что и LAST_MODIFIED_TIME . |
NAME_MATCH | Фильтрация файлов по имени с использованием регулярных выражений. | pattern : регулярное выражение, например, [a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}\.zip для сопоставления результатов zip-архивов. |
SYSTEM_AVAILABLE_SPACE | Запуск действий в зависимости от доступного места в системе. | threshold : действие активируется, когда доступное пространство становится ниже порогового значения, например, 200 (Б), 200KB , 200MB , 200GB , 2TB . |
Рисунок 53. Добавление новой политики очистки файлов.
Конфиги
Конфигурация объединяет одну или несколько политик с определенными каталогами. Файлы и каталоги в указанных каталогах обрабатываются на основе определенных политик. Политики применяются в том порядке, в котором они указаны в конфигурации.
Все целевые каталоги должны располагаться в каталоге /data
. Если в вашей конфигурации целевой каталог указан как logs
, он интерпретируется как /data/logs
.
Рисунок 54. Редактирование конфигурации очистителя файлов.
Перезагрузить
Нажатие «Сбросить настройки» возвращает конфигурацию очистителя файлов в состояние по умолчанию. Это действие очищает ВСЕ пользовательские элементы.
Рисунок 55. Сброс настроек очистки файлов.
Поддерживать
Отчеты об ошибках
Ваш вклад в OmniLab ATS помогает улучшить разработку инструмента, и мы хотим вашего вклада! Ознакомьтесь с примечаниями к выпуску OmniLab ATS для получения подробной информации о последнем выпуске. Чтобы сообщить об ошибках или внести предложения, отправьте отчет об ошибке . Партнеры должны сообщать об ошибках или предложениях, используя свои партнерские каналы.