Приложение командной строки — 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 мог аутентифицироваться на стороне ТестОпс.
Процесс создания токена описан в разделе Меню пользователя.
Режимы работы allurectl
Существует два режима, в которых работает allurectl:
- режим Non-CI;
- режим CI.
Режим Non-CI
При запуске allurectl проверяет, указаны ли необходимые переменные CI. Если они отсутствуют, загрузка данных считается локальной (с ПК) и allurectl будет работать в режиме Non-CI. В этом режиме вы не можете использовать и менять параметры, связанные с запуском джоб.
Передача параметров в allurectl
Существует два способа передачи параметров в allurectl в режиме Non-CI:
- через параметры командной строки;
- через переменные окружения.
Загрузка с использованием параметров командной строки
Этот вариант удобен, когда вам нужна единичная загрузка для некоторых ваших тестов.
Пример:
bash
allurectl upload --endpoint https://allure.company.com \
--token 55555555-5555-5555-5555-555555555555 \
--project-id 100 \
--launch-name "Ручной локальный запуск 2020-12-31" \
path/to/allure-results
Загрузка с использованием переменных окружения
Этот вариант удобен, когда вы регулярно загружаете свои данные, так как он позволяет сохранять и повторно использовать параметры, чтобы вам не нужно было вводить их в командной строке каждый раз.
Пример:
bash
# Объявление переменных окружения
export ALLURE_ENDPOINT=https://allure.company.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://allure.company.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://allure.company.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 test
allurectl 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-системы. Каждый тест-кейс идентифицируется AllureID и селектором. Селектор — это то, как тестовый фреймворк идентифицирует тест. Разные фреймворки могут использовать разные подходы к формированию селектора.
- Список тест-кейсов затем сохраняется в 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 теста (Allure 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://demo.testops.cloud
allurectl auth login
Вы также можете использовать параметры командной строки, но мы рекомендуем использовать переменные окружения.
Для получения дополнительной информации используйте команду allurectl auth login --help
.
Загрузка результатов тестов в ТестОпс
Существует 2 способа загрузки результатов:
- использование команды
watch
; - использование команды
upload
.
watch
Команда watch
— это рекомендуемый способ загрузки результатов тестов.
В целом, watch
делает то же самое, что и upload
, с одним важным отличием — команда watch
позволяет отправлять результаты тестов в реальном времени. То есть вам не нужно ждать, пока все тесты завершатся, что уменьшит нагрузку и ускорит обработку результатов тестов на стороне ТестОпс.
watch
является оберткой для команды запуска ваших тестов, т.е. вам нужно дополнительно указать ту команду, которую вы используете для запуска тестов.
Использование
Как и в случае upload
, вам нужно предоставить параметры, необходимые для подключения к серверу ТестОпс (в примере ниже они указаны с помощью переменных окружения — мы настоятельно рекомендуем использовать такой подход). Затем нужно указать директорию, в которой будут появляться новые результаты тестов, и команду для запуска тестов.
bash
export ALLURE_ENDPOINT=https://allure.company.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://allure.company.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 test
upload
Важно
Для отправки данных из CI-системы мы рекомендуем использовать команду watch
. Используйте команду upload
только в том случае, если watch
вам не подходит.
upload
рекомендуется использовать только в тех случаях, когда результаты тестов доступны только после выполнения всех тестов (таких тестовых фрейморков немного), или если вам нужно загрузить директорию с результатами тестов, которые у вас уже есть.
Используйте команду upload
только после выполнения всех ваших тестов. Мы не рекомендуем использовать allurectl upload
как фоновый процесс.
Загрузка с использованием параметров командной строки
bash
allurectl upload --endpoint https://allure.company.com \
--token 55555555-5555-5555-5555-555555555555 \
--project-id 100 \
--launch-name "Ручной локальный запуск 2020-12-31" \
path/to/allure-results
Загрузка с использованием переменных окружения
bash
# Объявление переменных окружения
export ALLURE_ENDPOINT=https://allure.company.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://demo.testops.cloud
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://demo.testops.cloud
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://demo.testops.cloud/jobrun/14433
ALLURE_LAUNCH_URL=https://demo.testops.cloud/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://demo.testops.cloud
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 отобразит подробную информацию о файлах, которые были проиндексированы, обработаны и загружены в стандартный поток вывода.
Пример вывода
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://demo.testops.cloud/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://demo.testops.cloud/launch/34
Stop 2024-01-15 114008
Версия клиента
TestOps Client v2.15.1
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://demo.testops.cloud/launch/34
URL-адрес созданного запуска.
Процесс индексации и загрузки
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://demo.testops.cloud/launch/34
Stop 2024-01-15 114008
Релизы
Информация о релизах allurectl доступна на GitHub.