Приложение командной строки — allurectl 
Allurectl — приложение командной строки для работы с API ТестОпс, позволяющее:
- загружать результаты тестов в реальном времени из джоб;
- управлять сущностями на стороне ТестОпс, такими как тест-кейсы, запуски и проекты.
Скачивание allurectl 
Чтобы скачать allurectl, выберите бинарный файл, подходящий для вашей операционной системы и архитектуры процессора, из доступных опций:
- macOS на Intel x64 — **_darwin_amd64;
- macOS на M1 (ARM64) — **_darwin_arm64;
- 32-битный Linux — **_linux_386;
- 64-битный Linux — **_linux_amd64;
- 64-битный ARM Linux — **_linux_arm64;
- 32-битный Windows — **_windows_386.exe;
- 64-битный Windows — **_windows_amd64.exe;
- 64-битный ARM Windows — **_windows_arm64.exe.
Пример ниже — скачивание allurectl для Linux на x64 ЦПУ:
bash
wget https://github.com/allure-framework/allurectl/releases/latest/download/allurectl_linux_amd64 -O ./allurectl
chmod +x ./allurectlСоздание API-токена ТестОпс 
Прежде чем вы сможете использовать allurectl, вам нужно создать API-токен ТестОпс в меню пользователя, чтобы allurectl мог аутентифицироваться на стороне ТестОпс. Подробнее см. Меню пользователя → Создание API-токена.
Режимы работы allurectl 
Существует два режима, в которых работает allurectl:
- режим Non-CI;
- режим CI.
Режим Non-CI 
При запуске allurectl проверяет, указаны ли необходимые переменные CI. Если они отсутствуют, загрузка данных считается локальной (с ПК) и allurectl будет работать в режиме Non-CI. В этом режиме вы не можете использовать и менять параметры, связанные с запуском джоб.
Передача параметров в allurectl 
Существует два способа передачи параметров в allurectl в режиме Non-CI:
- через параметры командной строки;
- через переменные окружения.
Загрузка с использованием параметров командной строки 
Этот вариант удобен, когда вам нужна единичная загрузка для некоторых ваших тестов.
Пример:
bash
allurectl upload --endpoint https://testops.example.com \
--token 55555555-5555-5555-5555-555555555555 \
--project-id 100 \
--launch-name "Ручной локальный запуск 2020-12-31" \
path/to/allure-resultsЗагрузка с использованием переменных окружения 
Этот вариант удобен, когда вы регулярно загружаете свои данные, так как он позволяет сохранять и повторно использовать параметры, чтобы вам не нужно было вводить их в командной строке каждый раз.
Пример:
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 path/to/allure-resultsЧто произойдет 
Если вы использовали один из вышеуказанных вариантов:
- На стороне ТестОпс будет создан новый запуск с названием «Ручной локальный запуск 2020-12-31».
- Будет создана новая сессия для загрузки результатов тестов.
- Результаты тестов из директории path/to/allure-results будут загружены в запуск ТестОпс «Ручной локальный запуск 2020-12-31» в рамках созданной сессии.
- Сессия будет закрыта.
- Запуск останется открытым до тех пор, пока не будет закрыт вручную или автоматически на основе правила автоматического закрытия, определенного для проекта с ID равным 100.
Режим CI 
Каждая CI-система имеет свой набор переменных окружения, идентифицирующих ее. Если allurectl обнаруживает такие переменные, запуск считается запуском из CI-системы и allurectl будет работать в режиме CI.
При загрузке из CI-системы в результаты тестов будет добавлена дополнительная информация о ней, которая станет доступна в ТестОпс. Также allurectl будет использовать набор внутренних переменных для связи результатов тестов с нужным запуском на стороне ТестОпс.
Команды allurectl 
allurectl watch 
В целом, команда allurectl watch (далее — watch) делает то же самое, что и allurectl upload (далее — upload), с одним важным отличием — команда watch позволяет отправлять результаты тестов в реальном времени. То есть вам не нужно ждать, пока все тесты завершатся, что уменьшит нагрузку на ТестОпс и ускорит обработку результатов тестов.
watch является оберткой для команды запуска ваших тестов, т. е. вам нужно дополнительно указать ту команду, которую вы используете для запуска тестов.
Применение 
Как и в случае 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="Hello, world" # здесь вы можете указать переменные окружения вашей джобы
export ALLURE_LAUNCH_TAGS="release, critical"
allurectl watch --results path/to/allure-results -- ./gradlew clean testИли вы можете указать все стартовые параметры в переменных окружения, чтобы вызов watch выглядел еще лаконичнее:
bash
export ALLURE_ENDPOINT=https://testops.example.com
export ALLURE_TOKEN=542dcd56-b0e2-4fdd-8ecf-bacf0f33d505
export ALLURE_PROJECT_ID=12
export ALLURE_LAUNCH_NAME="Hello, world"
export ALLURE_RESULTS=path/to/allure-results
export ALLURE_LAUNCH_TAGS="release, critical"
allurectl watch -- ./gradlew clean testallurectl upload 
Используйте команду upload только после выполнения всех ваших тестов. Мы не рекомендуем использовать upload как фоновый процесс.
Важно
Для отправки данных из CI-системы мы рекомендуем использовать команду watch. Используйте команду upload только в том случае, если watch вам не подходит.
Настройки 
Вы можете указать следующие переменные окружения для упрощения работы с allurectl вместо указания тех же параметров в командной строке. Использование переменных окружения делает работу с allurectl более понятной и уменьшает риск человеческой ошибки.
| Переменная окружения | Описание | 
|---|---|
| ALLURE_ENDPOINT | URL-адрес инстанса ТестОпс | 
| ALLURE_PROJECT_ID | ID проекта ТестОпс | 
| ALLURE_TOKEN | Персональный токен доступа пользователя, созданный в меню пользователя в разделе API-токены | 
| ALLURE_LAUNCH_NAME | Название запуска, которое будет отображаться в интерфейсе ТестОпс | 
| ALLURE_LAUNCH_TAGS | Список тегов, разделенных запятыми, которые будут отображаться в интерфейсе ТестОпс | 
Более подробную информацию о настройке переменных окружения можно найти в инструкциях для CI-систем.
Повторный и выборочный запуск тестов с allurectl 
Самая важная составляющая при повторном и выборочном запуске тестов — тест-план. В данном случае тест-план — это файл testplan.json со списком тест-кейсов, которые ваш фреймворк должен выполнить.
Давайте посмотрим, как работает эта интеграция.
Интеграция выборочного запуска тестов 
Примечание
Начиная с версии 2.10.x, allurectl и ТестОпс полностью контролируют процесс выборочного запуска тестов, и вам не нужно объявлять ALLURE_TESTPLAN_PATH и выполнять команду job-run plan в вашем пайплайне. Вы все еще можете использовать инструкции, описанные ниже, однако мы рекомендуем оставить весь этот процесс на усмотрение ТестОпс и allurectl.
- На стороне ТестОпс мы создаем список тест-кейсов, которые нам нужно (повторно) запустить на стороне CI-системы. Каждый тест-кейс идентифицируется через ID и селектор. Селектор — это то, как тестовый фреймворк идентифицирует тест. Разные фреймворки могут использовать разные подходы к формированию селектора.
- Список тест-кейсов затем сохраняется в CI-системе в файл testplan.json.
- На стороне CI-системы мы создаем переменную окружения ALLURE_TESTPLAN_PATHи указываем в качестве значения путь до файла testplan.json.
- Когда адаптер Allure Framework обнаруживает, что переменная ALLURE_TESTPLAN_PATHуказана, он пытается прочитать testplan.json.
- Если файл testplan.json успешно прочитан, интеграция инструктирует тестовый фреймворк выполнять только тесты, указанные в testplan.json.
Важно
Если CI-система запускает все тесты из вашего проекта, это означает, что на вашей стороне что-то не настроено или ваш фреймворк не интегрирован с ТестОпс.
Если вы столкнулись с этим, пожалуйста, создайте новое обращение с типом запроса Требуется поддержка на сайте help.qatools.ru.
Структура файла testplan.json 
Зная структуру testplan.json, вы можете создать testplan.json на своем локальном ПК, инициализировать переменную окружения ALLURE_TESTPLAN_PATH с путем к testplan.json и запустить свои тесты локально без каких-либо дополнительных фильтров в той же сессии. Если в результате будут выполнены только тесты из testplan.json, у вас есть рабочая интеграция для выборочного запуска тестов. В противном случае вам нужно настроить интеграцию или разработать ее для вашего фреймворка.
json
{
  "version": "1.0",
  "tests": [
    {
      "id": "10",
      "selector": "io.qameta.allure.examples.junit4.AllureSimpleTest.allureSimpleTest"
    },
    {
      "id": "11",
      "selector": "io.qameta.allure.examples.junit4.AllureParameterizedTest.allureParameterizedTest[First Name]"
    }
  ]
}где
- id — ID теста из ТестОпс; 
- selector — альтернативный ID, который по умолчанию равен полному пути теста.  
Сохранение тест-плана в CI-системе, запуск и загрузка результатов тестов 
Во всех CI-системах у нас одна и та же последовательность действий:
- ТестОпс запускает джобу и добавляет в нее - ALLURE_JOB_RUN_ID = <id>.- Если allurectl находит - ALLURE_JOB_RUN_ID, то он игнорирует все остальные переменные, и сессия создается с теми параметрами джобы, которые были установлены ТестОпс.
- ТестОпс предоставляет переменную окружения - ALLURE_TESTPLAN_PATHс путем до файла testplan.json.
- Allurectl создает файл testplan.json и заполняет его информацией о списке тестов. 
- Allurectl запускает ваши тесты, создает индексный список файлов с результатами тестов и отправляет файлы с результатами тестов в ТестОпс с помощью команды - watch.
bash
allurectl watch -- ./gradlew clean testПримечание
Вся работа с ALLURE_TESTPLAN_PATH и testplan.json полностью автоматизирована начиная с версии allurectl 2.10.0. Никаких дополнительных настроек производить не нужно.
Запуск вложенных джоб 
Бывает, что вам нужно запустить несколько джоб в CI-системе и отправить результаты тестов из нескольких джоб в один агрегированный запуск на стороне ТестОпс. Для это можно использовать переменную окружения ALLURE_JOB_RUN_ID.
Если allurectl находит ALLURE_JOB_RUN_ID, то он не создает новый объект, а использует тот, который указан в ALLURE_JOB_RUN_ID. Таким же образом работает выполнение тестов из ТестОпс.
Принцип работы 
- Создайте агрегирующую джобу на стороне CI-системы. 
- Запустите джобу в рамках агрегирующей джобы и сохраните значение - ALLURE_JOB_RUN_ID.
- Создайте вложенную джобу, передав ей сохраненной значение - ALLURE_JOB_RUN_ID.- Все результаты тестов из джоб с одинаковым - ALLURE_JOB_RUN_IDбудут загружены в один и тот же запуск в ТестОпс.
- Allurectl остановит выполнение джобы (дополнительных команд не требуется). 
Примеры использования allurectl 
Примечание
При вызове watch и upload вы можете указать параметр --help, чтобы увидеть полный список поддерживаемых настроек.
 Например: allurectl watch --help.
При любых вопросах, пожалуйста, свяжитесь с поддержкой.
Передача параметров в allurectl 
Переменные окружения 
Для упрощения работы с allurectl укажите следующие переменные окружения:
| Переменная окружения | Описание | 
|---|---|
| ALLURE_ENDPOINT | URL-адрес инстанса ТестОпс | 
| ALLURE_PROJECT_ID | ID проекта ТестОпс | 
| ALLURE_TOKEN | Персональный токен доступа пользователя, созданный в меню пользователя в разделе API-токены | 
| ALLURE_LAUNCH_NAME | Название запуска, которое будет отображаться в интерфейсе ТестОпс | 
Тестирование подключения 
Важно
Пожалуйста, используйте эту команду только для проверки подключения. Не используйте ее в своих пайплайнах для авторизации процесса загрузки результатов тестов, это делается иначе (см. ниже).
Протестировать подключение можно с вашего локального компьютера или в CI-пайплайне (см. заметку выше).
Чтобы проверить подключение к инстансу ТестОпс, вы можете использовать следующую команду:
bash
export ALLURE_TOKEN=<API-TOKEN>
export ALLURE_ENDPOINT=https://testops.example.com
allurectl auth loginВы также можете использовать параметры командной строки, но мы рекомендуем использовать переменные окружения.
Для получения дополнительной информации используйте команду allurectl auth login --help.
Загрузка результатов тестов в ТестОпс 
Существует 2 способа загрузки результатов:
- использование команды watch;
- использование команды upload.
watch 
Команда watch — это рекомендуемый способ загрузки результатов тестов.
В целом, watch делает то же самое, что и upload, с одним важным отличием — команда watch позволяет отправлять результаты тестов в реальном времени. То есть вам не нужно ждать, пока все тесты завершатся, что уменьшит нагрузку и ускорит обработку результатов тестов на стороне ТестОпс.
watch является оберткой для команды запуска ваших тестов, т.е. вам нужно дополнительно указать ту команду, которую вы используете для запуска тестов.
Использование 
Как и в случае 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="Hello, world" # здесь вы можете указать переменные окружения вашей джобы
allurectl watch --results path/to/allure-results -- ./gradlew clean testИли вы можете указать все стартовые параметры в переменных окружения, чтобы вызов watch выглядел еще лаконичнее:
bash
export ALLURE_ENDPOINT=https://testops.example.com
export ALLURE_TOKEN=542dcd56-b0e2-4fdd-8ecf-bacf0f33d505
export ALLURE_PROJECT_ID=12
export ALLURE_LAUNCH_NAME="Hello, world"
export ALLURE_RESULTS=path/to/allure-results
allurectl watch -- ./gradlew clean testupload 
Важно
Для отправки данных из CI-системы мы рекомендуем использовать команду watch. Используйте команду upload только в том случае, если watch вам не подходит.
upload рекомендуется использовать только в тех случаях, когда результаты тестов доступны только после выполнения всех тестов (таких тестовых фрейморков немного), или если вам нужно загрузить директорию с результатами тестов, которые у вас уже есть.
Используйте команду upload только после выполнения всех ваших тестов. Мы не рекомендуем использовать allurectl upload как фоновый процесс.
Загрузка с использованием параметров командной строки 
bash
allurectl upload --endpoint https://testops.example.com \
    --token 55555555-5555-5555-5555-555555555555 \
    --project-id 100 \
    --launch-name "Ручной локальный запуск 2020-12-31" \
    path/to/allure-resultsЗагрузка с использованием переменных окружения 
bash
# Объявление переменных окружения
export ALLURE_ENDPOINT=https://testops.example.com
export ALLURE_TOKEN=55555555-5555-5555-5555-555555555555
export ALLURE_PROJECT_ID=100
# Запуск процесса загрузки
allurectl upload --launch-name "Ручной локальный запуск 2020-12-31" path/to/allure-resultsПолучение информации о запуске ТестОпс 
Задача 
Мы хотим получить информацию о запуске, созданном после выполнения команд watch или upload, например, чтобы передать информацию в чат или отправить ее в электронном письме.
Как 
Примечание
Это работает только в режиме CI.
Информация об объектах, созданных на стороне ТестОпс, может быть помещена в переменные окружения и затем использована путем выполнения следующей последовательности команд:
shell
# Объявление переменных окружения
export ALLURE_ENDPOINT=https://testops.example.com
export ALLURE_TOKEN=<toke>
export ALLURE_PROJECT_ID=<ID>
export ALLURE_LAUNCH_NAME="Hello, world"
export ALLURE_RESULTS=path/to/allure-results
# Запуск тестов
allurectl watch -- ./gradlew clean test
export $(allurectl job-run env)
# Эта команда выведет список всех переменных окружения, связанных с allurectl
printenv | grep ALLURE_Вызов printenv | grep ALLURE_  покажет следующее:
shell
ALLURE_ENDPOINT=https://testops.example.com
ALLURE_LAUNCH_ID=11111
ALLURE_RESULTS=./allure-results
ALLURE_JOB_RUN_ID=12345
ALLURE_LAUNCH_TAGS=master, gitlab, demo, pytest, skip-live-doc, ignore
ALLURE_TOKEN=[MASKED]
ALLURE_LAUNCH_NAME=allure-pytest - 1ea04f48
ALLURE_JOB_RUN_URL=https://testops.example.com/jobrun/14433
ALLURE_LAUNCH_URL=https://testops.example.com/launch/31897
ALLURE_PROJECT_ID=433Чтобы указать ссылку на созданный запуск, вы можете использовать либо ALLURE_JOB_RUN_URL, либо ALLURE_LAUNCH_URL.
ALLURE_JOB_RUN_URL — это сущность (может быть несколько запущенных джоб) внутри запуска, поэтому если вы объединяете два или более запуска в один, ALLURE_JOB_RUN_URL всегда будет указывать на правильный запуск.
Создание запуска на основе тест-плана, созданного в проекте ТестОпс 
Задача 
Пользователь хочет создать тест-план на стороне ТестОпс, а затем выполнить только тесты из этого тест-плана, указав тест-план в пайплайне.
Как это сделать 
Задача может быть выполнена путем создания файла testplan.json перед выполнением команды watch.
shell
export ALLURE_TOKEN=<token>
export ALLURE_ENDPOINT=https://testops.example.com
export ALLURE_PROJECT_ID=111
export ALLURE_LAUNCH_NAME="$(date "+%Y-%m-%d %H%M%S") executing test plan"
export ALLURE_LAUNCH_TAGS="watch, testplan"
export ALLURE_RESULTS="allure-results"
export ALLURE_TESTPLAN_PATH="testplan.json"
# Создание testplan.json на основе тест-плана с идентификатором 222
./allurectl test-case plan -q "testPlan=222" --output-file ${ALLURE_TESTPLAN_PATH}
# Запуск тестов, указанных в testplan.json
./allurectl watch -- [tests_execution_command]Отладка загрузки результатов тестов 
Задача 
Я хочу видеть отладочную информацию о процессе загрузки, чтобы устранить проблемы с загрузкой результатов тестов.
Как это сделать 
Примечание
Подробная отладка доступна начиная с версии allurectl 2.11.0.
allurectl имеет специальный параметр командной строки --log, который позволяет собирать логи загрузки результатов тестов.
shell
./allurectl --log debug upload ${ALLURE_RESULTS}
./allurectl --log debug watchПараметр --log должен быть добавлен перед командой watch/upload. Если он добавлен после, то он будет проигнорирован.
Для каждого загруженного пакета файлов allurectl выведет строку с информацией о процессе загрузки.
Уровни логирования 
Существуют следующие уровни логирования от наименее подробного до максимально подробного:
- fatal,
- error,
- warn,
- info,
- debug,
- trace.
Как автоматически добавить ссылку на задачу к запуску 
Задача 
Я хочу автоматически добавлять ссылки на задачи к запускам каждый раз, когда запуск создается из джобы.
Как это сделать 
Примечание
Добавление ссылок на задачи доступно с версии allurectl 2.2.0.
Режим Non-CI:
Для режима Non-CI вам нужно знать точный ID запуска, чтобы добавить информацию о задаче.
shell
allurectl launch add-issue --launch-id launch_id --integration-id integration_id --issue-keys issue_key_1,issue_key_2,...,issue_key_NРежим CI (в пайплайне после использования команды watch):
shell
allurectl launch add-issue --current-launch --integration-id integration_id --issue-keys issue_key_1,issue_key_2,...,issue_key_Nгде:
- launch_id— ID запуска;
- integration_id— ID интеграции (вы можете найти этот ID в интерфейсе ТестОпс);
- issue_key— ID задачи (например, AE-1).
Выполнение тестов в контейнере Docker или на удаленной машине 
Задача 
Мои тесты должны выполняться вне пайплайна на удаленной машине или в контейнере Docker. Мне нужно, чтобы результаты тестов загружались в ТестОпс в запуск, связанный с пайплайном, который инициировал выполнение тестов.
Как это сделать 
Примечание
Функция доступна начиная с версии allurectl 2.10.0.
allurectl позволяет передавать контекст пайплайна другой системе таким образом, что allurectl на виртуальной машине или в контейнере Docker будет думать, что он работает внутри пайплайна.
Упаковка контекста 
Команда должна быть выполнена в пайплайне, который отвечает за запуск тестов.
Вам нужно запустить allurectl с параметрами ci env --encode в рамках родительского пайплайна и сохранить результаты выполнения команды в переменную окружения ALLURE_CI_ENV.
shell
ALLURE_CI_ENV=$(allurectl ci env --encode)Передача контекста 
Вам нужно передать содержимое ALLURE_CI_ENV на ту систему, на которой будут выполняться ваши тесты. Эта переменная должна быть создана с нужным значением перед выполнением allurectl.
После создания переменной и установки ее значения, вы можете выполнить ваши тесты с помощью allurectl как обычно.
shell
allurectl watch -- exec-your-tests-hereЗагрузка результатов тестов с виртуальной машины или контейнера будет связана с пайплайном, который инициировал запуск тестов.
Запуск тестов, если инстанс ТестОпс недоступен 
Примечание
Обычно, если allurectl не может подключиться к инстансу ТестОпс, он не начинает выполнение тестов и завершает пайплайн с ошибкой.
Задача 
Я хочу, чтобы мои тесты выполнялись, даже если инстанс ТестОпс недоступен по какой-либо причине (например, из-за технических работ, выключенного сервера, отсутствия маршрута к хосту, проблем с сетью).
Как это сделать 
Примечание
Функция доступна начиная с версии allurectl 2.15.0.
Чтобы предотвратить завершение пайплайна allurectl, мы добавили параметр командной строки --silent. При указании этого параметра allurectl проверит доступность инстанса, и если он недоступен, то выведет предупреждение в стандартный поток вывода и начнет выполнение тестов в соответствии с предоставленной командой без попытки загрузить результаты тестов.
Пример 
shell
allurectl watch --silent -- [tests_execution_command]Исключение больших *-result.json файлов из загрузки 
Примечание
Функция доступна начиная с версии allurectl 2.15.0.
ТестОпс имеет ограничение на размер файлов *-result.json, которое равно 2 000 000 байт. Если файл результата превышает этот лимит, то он считается вложением и не обрабатывается парсером. Следовательно, результат не будет сохранен в базе данных и не появится в интерфейсе. Если ссылка на этот файл не найдена в других файлах *-result.json, то он будет удален, как только запуск будет закрыт.
Задача 
Я хочу избежать загрузки файлов, которые не будут обработаны, чтобы сэкономить время и ресурсы на загрузку и обработку.
Как это сделать 
Мы добавили параметр командной строки --skip-too-big, который предотвратит загрузку файлов размером более 2 000 000 байт. Allurectl не будет загружать такие файлы и выдаст предупреждение в стандартный поток вывода о том, что некоторые файлы слишком большие для обработки инстансом.
Пример 
shell
allurectl watch --skip-too-big  -- [tests_execution_command]Пропуск вложений успешно пройденных тестов 
Задача 
Я хочу разгрузить хранилище и ускорить обработку результатов, избегая загрузки вложений для успешно пройденных тестов, так как они не представляют для нас интереса, нам нужны только неуспешные или сломанные тесты с вложениями.
Как это сделать №1 
Мы добавили параметр командной строки --ignore-passed-test-attachments в allurectl 2.9.0, который позволяет это сделать.
Совет
Это способ работает для вложений в теле теста. Вложения в фикстурах (блоки setup и tear-down) будут загружены, даже если указан --ignore-passed-test-attachments.
Пример №1 
shell
./allurectl watch --ignore-passed-test-attachmentsили для upload
shell
./allurectl upload --ignore-passed-test-attachments ${ALLURE_RESULTS}Как это сделать №2 
Существует параметр командной строки --exclude-files, который позволяет исключить файлы, соответствующие регулярному выражению.
Важно
Регулярное выражение имеет синтаксис Golang, поэтому лучше проверить его с помощью ресурса regex101.com (или другого ресурса) перед применением.
Пример №2 
Следующая команда будет игнорировать все файлы "-container.json" (блоки setup и tear-down ваших тестов) в директории allure-results.
shell
./allurectl watch --exclude-files /*-container.jsonили для upload
shell
./allurectl upload --exclude-files /*-container.json ${ALLURE_RESULTS}Как читать вывод allurectl 
После загрузки результатов тестов allurectl отобразит подробную информацию о файлах, которые были проиндексированы, обработаны и загружены в стандартный поток вывода.
Пример вывода 
Allure TestOps Client v2.15.1
Project [5] with name [eat these files]
Creating new launch with name [allurectl local upload launch 2024-01-15 113340]
Launch [34] with name [allurectl local upload launch 2024-01-15 113340]
Session [35] started
Report link: https://testops.example.com/launch/34
Watcher is waiting for indexing complete...
Watcher is waiting until files processed
Total files indexed: 9229 || Finished files: 1744 || Orphan Files: 2102
...
Total files indexed: 29796 || Finished files: 28968 || Orphan Files: 828
Total files indexed: 29796 || Finished files: 28968 || Orphan Files: 828
Waiting Finished. Waited for 331ns
+---------------------------------------------------------------------------------------------------------------------------+
| Indexer Stats                                                                                                             |
+-----------+-------------------------------------------------------------+-----------------+--------------+----------------+
| INDEXING: |                         Total=29796                         | Completed=28968 |              |                |
+-----------+-------------------------------------------------------------+-----------------+--------------+----------------+
|   STATS:  |                             type                            |      count      |              |                |
+-----------+-------------------------------------------------------------+-----------------+--------------+----------------+
|           |                        allure.attach                        |      19123      |              |                |
+-----------+-------------------------------------------------------------+-----------------+--------------+----------------+
|           |                        allure.result                        |      6074       |              |                |
+-----------+-------------------------------------------------------------+-----------------+--------------+----------------+
|           |                       allure.container                      |      3610       |              |                |
+-----------+-------------------------------------------------------------+-----------------+--------------+----------------+
|           |                           unknown                           |       989       |              |                |
+-----------+-------------------------------------------------------------+-----------------+--------------+----------------+
|  TIMINGS: |                   Duration=6m26.954214603s                  |Min=325.104641ms |Avg=2m50.787s | Max=6m26.8907s |
+-----------+-------------------------------------------------------------+-----------------+--------------+----------------+
|   SKIPS:  |                            Reason                           |      Count      |              |                |
+-----------+-------------------------------------------------------------+-----------------+--------------+----------------+
|           | can't find *-result.json or *-container.json for attachment |       828       |              |                |
+-----------+-------------------------------------------------------------+-----------------+--------------+----------------+
+------------------------------------------------------------------------------------------------------------------------+
| !!! WARNING !!!                                                                                                        |
+------------------------------------------------------------------------------------------------------------+-----------+
| The following test results files have the size over 2,000,000 bytes and will be skipped by Allure TestOps: |           |
+------------------------------------------------------------------------------------------------------------+-----------+
|               /opt/allurectl/allure-results/a86295d3-483c-44e5-b1a7-ce6cdea3b1b1-result.json               | 6.751 MB  |
+------------------------------------------------------------------------------------------------------------+-----------+
|               /opt/allurectl/allure-results/24cd7f86-26e2-483c-9184-f51044debbe2-result.json               | 75.140 MB |
+------------------------------------------------------------------------------------------------------------+-----------+
+-------------------------------------------------------------------------------------------------------------------+
| Uploading Stats                                                                                                   |
+----------+--------------------------+------------------+---------------------+--------------------+---------------+
|  FILES:  | TotalBatches=3645        | TotalFiles=28968 | UploadedFiles=28968 | TotalSize=7.170 GB | ErrorsCount=0 |
+----------+--------------------------+------------------+---------------------+--------------------+---------------+
| TIMINGS: | Duration=6m25.911071126s |  Min=47.595229ms |   Avg=210.704214ms  |  Max=3.663549864s  |               |
+----------+--------------------------+------------------+---------------------+--------------------+---------------+
Watcher finished in [6m28.100628726s]
You can find report here: https://testops.example.com/launch/34
Stop 2024-01-15 114008Версия клиента 
Allure TestOps Client v2.15.1Allure TestOps Client — это версия allurectl. Убедитесь, что вы используете последнюю версию allurectl. Эта информация важна для устранения неполадок и отчетов об ошибках. Обычно ошибки должны быть сообщены только при использовании последней версии allurectl.
Раздел проекта и запуска 
Project [5] with name [eat these files]
Creating new launch with name [allurectl local upload launch 2024-01-15 113340]
Launch [34] with name [allurectl local upload launch 2024-01-15 113340]
Session [35] startedВ этом разделе можно найти ID проекта, в который должны быть загружены результаты, и название запуска, который будет создан. Также здесь указан результат попытки создать указанный запуск (название созданного запуска и сессии).
Эта информация может быть использована для устранения неполадок.
Ссылка на созданный запуск 
Report link: https://testops.example.com/launch/34URL-адрес созданного запуска.
Процесс индексации и загрузки 
Watcher is waiting for indexing complete...
Watcher is waiting until files processed
Total files indexed: 9229 || Finished files: 1744 || Orphan Files: 2102Когда ваш тестовый фреймворк выполняет тесты, интеграция Allure Framework создает результаты тестов. Эти результаты тестов сначала индексируются (allurectl определяет, есть ли новые файлы), а затем загружаются в ТестОпс (allurectl отмечает уже загруженные файлы как Finished).
Метрика Orphan Files обновляется по мере процесса загрузки и в идеале должна быть равна нулю в конце выполнения тестов. Если Orphan Files показывает ненулевое значение, это означает, что вы загрузили файлы, которые не упомянуты ни в файлах -result.json, ни в файлах -container.json. Все такие файлы будут удалены на стороне ТестОпс после закрытия запуска.
Статистика по типам файлов 
Типы файлов подробно описаны в документации Allure Report.
|   STATS:  |          type           |      count      |
+-----------+-------------------------+-----------------+-
|           |     allure.attach       |      19123      |
+-----------+-------------------------+-----------------+-
|           |     allure.result       |      6074       |
+-----------+-------------------------+-----------------+-
|           |    allure.container     |      3610       |
+-----------+-------------------------+-----------------+-
|           |        unknown          |       989       |Вывод предоставляет статистику по проиндексированным результатам тестов.
- allure.attach - Информация о количестве проиндексированных файлов вложений.
- *-attachment.[ext] — стандартный формат имен файлов вложений в интеграции Allure Framework.
 
- allure.result - Информация о количестве проиндексированных файлов *-result.json.
- Это файлы, содержащие информацию о шагах и статусах тестов.
 
- allure.container - Информация о количестве проиндексированных файлов *-container.json.
- Это файлы, содержащие информацию о шагах и статусах фикстур тестов.
 
- unknown - Информация о количестве файлов, проиндексированных allurectl, которые, скорее всего, являются вложениями, но это файлы, имена которых не соответствуют стандартному формату Allure Framework.
- Это также могут быть мусорные файлы с точки зрения их использования для отображения информации о результатах тестов в ТестОпс.
 
Тайминги 
+-----------+----------------------+---------------+--------------+----------------+
|  TIMINGS: |  Duration=6m26.95s   | Min=325.101ms | Avg=2m50.77s | Max=6m26.8992s |
+-----------+----------------------+---------------+--------------+----------------+Время, потраченное на процесс индексации, включая общее, минимальное, среднее и максимальное время индексации.
Пропуски 
+-----------+-------------------------------------------------------------+------------------+
|   SKIPS:  |                            Reason                           |       Count      |
+-----------+-------------------------------------------------------------+------------------+
|           | can't find *-result.json or *-container.json for attachment |        828       |
+-----------+-------------------------------------------------------------+------------------+Статистика о количестве файлов, которые не упомянуты в файлах *-result.json или *-container.json как вложения. Эти файлы будут удалены на стороне ТестОпс.
Большие файлы результатов тестов 
!!! WARNING !!!
+------------------------------------------------------------------------------------------------------------+-----------+
| The following test results files have the size over 2,000,000 bytes and will be skipped by Allure TestOps: |           |
+------------------------------------------------------------------------------------------------------------+-----------+
|               /opt/allurectl/allure-results/a86295d3-483c-44e5-b1a7-ce6cdea3b1b1-result.json               | 6.751 MB  |
|               /opt/allurectl/allure-results/24cd7f86-26e2-483c-9184-f51044debbe2-result.json               | 75.140 MB |
+------------------------------------------------------------------------------------------------------------+-----------+Все файлы результатов тестов, превышающие 2 000 000 байт. Эти результаты тестов будут удалены ТестОпс.
Статистика загрузки 
+-------------------------------------------------------------------------------------------------------------------+
| Uploading Stats                                                                                                   |
+----------+--------------------------+------------------+---------------------+--------------------+---------------+
|  FILES:  | TotalBatches=3645        | TotalFiles=28968 | UploadedFiles=28968 | TotalSize=7.170 GB | ErrorsCount=0 |
+----------+--------------------------+------------------+---------------------+--------------------+---------------+
| TIMINGS: | Duration=6m25.911071126s |  Min=47.595229ms |   Avg=210.704214ms  |  Max=3.663549864s  |               |
+----------+--------------------------+------------------+---------------------+--------------------+---------------+Общее количество файлов. Включает количество пакетов файлов, количество загруженных файлов, общий размер и количество ошибок.
Пакеты 
Пакет — это группа из нескольких файлов, которые загружаются вместе из CI-пайплайна в ТестОпс.
Файлы всегда загружаются пакетами, чтобы снизить нагрузку на инстанс ТестОпс.
По умолчанию количество файлов в пакете равно 10.
Информация о файлах 
- TotalBatches - Количество пакетов, загруженных в ТестОпс. 
- TotalFiles - Общее количество файлов, созданных вашими тестами в текущем пайплайне. 
- UploadedFiles - Общее количество файлов, загруженных в ТестОпс из текущего пайплайна. 
- TotalSize - Общий размер всех файлов, созданных в рамках текущего пайплайна. 
- ErrorsCount - Количество ошибок, возникших во время процесса загрузки. 
Информация о продолжительности 
- Duration - Общая продолжительность процесса загрузки. 
- Min - Минимальное время, затраченное на загрузку одного пакета. 
- Avg - Среднее время, затраченное на загрузку одного пакета. 
- Max - Максимальное время, затраченное на загрузку одного пакета. 
Индикация прогресса 
Total files indexed: 29796 || Finished files: 28968 || Orphan Files: 828В процессе обработки файлов allurectl периодически выводит строку выше с обновленной информацией.
- Total files indexed - Сколько файлов проиндексировано на данный момент 
- Finished files - Сколько файлов загружено на данный момент. 
- Orphan Files - Для какого количества файлов allurectl не нашел ссылок в файлах -result.json или -container.json. С помощью этого числа можно понять, сколько потенциально бесполезных файлов находится в текущем выполнении пайплайна. - Если это число не равно нулю в конце выполнения allurectl, вам, вероятно, нужно проверить, указали ли вы правильный путь к результатам тестов и используют ли ваши тесты те файлы, которые они создали. 
Завершение загрузки результатов 
Когда загрузка будет завершена, allurectl выведет ссылку на созданный запуск, время окончания операции и ее продолжительность.
Watcher finished in [6m28.100628726s]
You can find report here: https://testops.example.com/launch/34
Stop 2024-01-15 114008Релизы 
Информация о релизах allurectl доступна на GitHub.

