Команды и параметры импорта через allurectl
Примечание
Инструкция актуальна для allurectl версии 2.22.1. Подробнее о новых возможностях и улучшениях allurectl см. на официальной странице релизов в GitHub.
Allurectl импортирует результаты тестов в ТестОпс с помощью команд:
allurectl watch(далее —watch) — импорт результатов тестов по мере выполнения тестов;allurectl upload(далее —upload) — импорт результатов тестов, когда все тесты уже завершены.
Основные этапы импорта через allurectl:
- Allurectl создает в ТестОпс запуск и сессию импорта результатов тестов.
- Allurectl импортирует результаты тестов в этот запуск в рамках созданной сессии.
- После импорта всех результатов тестов allurectl закрывает сессию этого импорта.
- Запуск в ТестОпс остается открытым, пока его не закроют вручную или по правилу автоматического закрытия.
Совет
Во время импорта allurectl выводит в командную строку информацию о ходе обработки результатов тестов и итоге импорта. Подробнее см. Чтение вывода allurectl в командной строке.
Для импорта с помощью команд watch и upload используются параметры в виде переменных окружения или флагов командной строки, например, чтобы указать инстанс ТестОпс, к которому необходимо подключиться, и название создаваемого запуска.
Импорт результатов тестов через allurectl командой watch
Команда watch в allurectl выполняет команду запуска тестов и следит за директорией с их результатами:
- Если в директории уже есть файлы на момент запуска,
watchимпортирует их в ТестОпс. - Если в директории появляются новые файлы,
watchтакже импортирует их в ТестОпс. - Когда команда для выполнения тестов завершается,
watchпродолжает некоторое время следить за директорией, импортирует оставшиеся файлы в ТестОпс и завершает свою работу.
Такой способ импорта снижает нагрузку на инстанс ТестОпс и ускоряет обработку результатов тестов.
Команда watch поддерживается как в CI-режиме, так и в локальном режиме, но для импорта результатов тестов из CI-системы является основным способом импорта.
Чтобы запустить импорт результатов тестов в ТестОпс командой watch:
Задайте параметры импорта переменными окружения или флагами командной строки.
Примечание
Настройка переменных окружения для каждой CI-системы описана в инструкциях по интеграциям.
Укажите команду запуска тестов после команды
watchчерез--.
Пример импорта командой watch с использованием переменных окружения
bash
export ALLURE_ENDPOINT=https://testops.example.com
export ALLURE_TOKEN=55555555-5555-5555-5555-555555555555
export ALLURE_PROJECT_ID=100
export ALLURE_LAUNCH_NAME="Запуск через allurectl"
export ALLURE_LAUNCH_TAGS="release,critical"
export ALLURE_RESULTS=build/allure-results
allurectl watch -- ./gradlew clean testПример импорта командой watch с использованием флагов командной строки
bash
allurectl watch --endpoint https://testops.example.com \
--token 55555555-5555-5555-5555-555555555555 \
--project-id 100 \
--launch-name "Запуск через allurectl" \
--launch-tags "release,critical" \
--results build/allure-results -- ./gradlew clean testИмпорт результатов тестов через allurectl командой upload
Команда upload в allurectl единоразово читает директорию с результатами тестов и импортирует в ТестОпс файлы, которые в ней есть на текущий момент.
Команда upload поддерживается как в CI-режиме, так и в локальном режиме, но для импорта результатов тестов в локальном режиме является основным способом импорта.
Важно
Не запускайте команду upload фоновым процессом. Импортируйте результаты тестов в ТестОпс с ее помощью только после выполнения всех нужных тестов.
Для импорта данных из CI-системы мы рекомендуем использовать команду watch.
Чтобы запустить импорт результатов тестов в ТестОпс командой upload:
Задайте параметры импорта переменными окружения или флагами командной строки.
Примечание
Настройка переменных окружения для каждой CI-системы описана в инструкциях по интеграциям.
Укажите директорию с результатами тестов в виде аргумента команды
upload.
Пример импорта командой upload с использованием переменных окружения
bash
export ALLURE_ENDPOINT=https://testops.example.com
export ALLURE_TOKEN=55555555-5555-5555-5555-555555555555
export ALLURE_PROJECT_ID=100
export ALLURE_LAUNCH_NAME="Ручной локальный запуск 2020-12-31"
export ALLURE_LAUNCH_TAGS="release,critical"
allurectl upload build/allure-resultsПример импорта командой upload с использованием флагов командной строки
bash
allurectl upload --endpoint https://testops.example.com \
--token 55555555-5555-5555-5555-555555555555 \
--project-id 100 \
--launch-name "Ручной локальный запуск 2020-12-31" \
--launch-tags "release,critical" \
build/allure-resultsПараметры импорта через allurectl
Основные параметры импорта через allurectl
Чтобы импортировать результаты тестов в нужный проект ТестОпс командой watch или upload, allurectl использует параметры в виде переменных окружения или флагов командной строки. Например, по ним allurectl определяет:
- инстанс ТестОпс и его проект, в который необходимо импортировать результаты тестов;
- название создаваемого запуска;
- директорию, в которой расположены файлы с результатами тестов.
Как правило, параметры в виде флагов командной строки используются для разового импорта, а в виде переменных окружения — для повторного импорта, например, для интеграций с CI-системами, чтобы не повторять параметры в каждой новой команде импорта.
Основные параметры импорта через allurectl, которые указываются вручную:
| Переменная | Флаг | Доступно в командах | Обязательность | Описание |
|---|---|---|---|---|
ALLURE_ENDPOINT | --endpoint | watch, upload | Да | URL-адрес инстанса ТестОпс |
ALLURE_TOKEN | --token | watch, upload | Да | API-токен ТестОпс из меню пользователя |
ALLURE_PROJECT_ID | --project-id | watch, upload | Да | ID проекта ТестОпс |
ALLURE_LAUNCH_NAME | --launch-name | watch, upload | Нет | Название запуска в интерфейсе ТестОпс |
ALLURE_LAUNCH_TAGS | --launch-tags | watch, upload | Нет | Теги запуска через запятую без пробела |
ALLURE_RESULTS | --results | watch | Да | Директория с результатами тестов. Несколько директорий перечисляются через запятую или задаются шаблоном, например modules/*/build/allure-results |
Совет
Для команды upload директорию с результатами тестов указывают аргументом команды.
Примечание
Подробнее о том, как allurectl связывает результаты тестов из CI-системы с сущностями ТестОпс и какие переменные для этого используются, см. Связь результатов тестов с запуском и джобой ТестОпс через allurectl.
Дополнительные параметры импорта через allurectl
Дополнительные параметры импорта задаются флагами командной строки и действуют для обеих команд — watch и upload.
Исключение из импорта больших файлов с результатами тестов
В ТестОпс имеется ограничение на размер файлов с результатами тестов (*-result.json) — 2000000 байт. Если файл результата теста превышает этот лимит, он считается вложением и не обрабатывается парсером. Следовательно, результат теста не сохраняется в базе данных и не появляется в интерфейсе ТестОпс. При закрытии запуска ТестОпс удаляет сведения о таких файлах, если они не привязаны к результату теста.
Чтобы исключить загрузку файлов размером более 2000000 байт и сэкономить время и ресурсы на импорт и обработку результатов тестов, используйте флаг --skip-too-big.
Примеры исключения больших файлов из импорта через allurectl
bash
# Пример для команды upload
allurectl upload --skip-too-big build/allure-results
# Пример для команды watch
allurectl watch --skip-too-big -- ./gradlew clean testИсключение из импорта вложений успешно пройденных тестов
Вложения успешно пройденных тестов, как правило, не нужны для анализа результатов тестирования, но увеличивают время импорта и занимают место в хранилище ТестОпс.
Чтобы исключить импорт таких вложений и ускорить обработку результатов тестов, используйте флаг --ignore-passed-test-attachments.
Важно
Флаг --ignore-passed-test-attachments действует только на вложения в теле теста и не влияет на импорт вложений из фикстур (блоков SetUp и TearDown).
Примеры исключения вложений из импорта через allurectl
bash
# Пример для команды upload
allurectl upload --ignore-passed-test-attachments build/allure-results
# Пример для команды watch
allurectl watch --ignore-passed-test-attachments -- ./gradlew clean testИсключение из импорта файлов по регулярному выражению
Чтобы исключить из импорта файлы определенного формата или названия, используйте флаг --exclude-files с указанием регулярного выраженияПоследовательность специальных символов, формирующих шаблон для поиска по тексту в синтаксисе Go.
Совет
Проверить корректность регулярного выражения можно на сайте regex101.com.
Примеры исключения файлов определенного формата из импорта через allurectl
Исключение файлов *-container.json, содержащих блоки тестов SetUp и TearDown:
bash
# Пример для команды upload
allurectl upload --exclude-files '.*-container\.json' build/allure-results
# Пример для команды watch
allurectl watch --exclude-files '.*-container\.json' -- ./gradlew clean test
