Связь результатов тестов с запуском и джобой ТестОпс через allurectl
Примечание
Инструкция актуальна для allurectl версии 2.22.1. Подробнее о новых возможностях и улучшениях allurectl см. на официальной странице релизов в GitHub.
При импорте результатов тестов в CI-режиме allurectl связывает их с запуском и джобой ТестОпс. От того, какие параметры получил allurectl во время импорта, зависит, в какой запуск попадут результаты тестов и какие данные о них будут доступны в ТестОпс. Управляя этой связью через allurectl, можно:
- получить ссылки на созданный основной запуск и запуск джобы ТестОпс, например, чтобы отправить их коллегам;
- добавить к запуску ТестОпс задачи из таск-трекеров;
- собрать результаты тестов из нескольких джоб CI-системы в один запуск ТестОпс;
- импортировать в ТестОпс результаты тестов вне пайплайна CI-системы.
Получение ссылок на основной запуск и запуск джобы ТестОпс через allurectl
Используя allurectl в CI-режиме, вы можете получить ссылки на запуск джобы и основной запуск ТестОпс, созданные во время выполнения тестов в пайплайне CI-системы.
Для этого:
- Импортируйте результаты тестов из CI-системы в ТестОпс через allurectl командой
watchилиupload. - Выполните в терминале команду
job-run envи экспортируйте ее вывод.
Пример получения ссылок через allurectl
bash
allurectl watch -- ./gradlew clean test
export $(allurectl job-run env)
printenv | grep ALLURE_В терминале отобразятся основные параметры импорта, а также:
| Переменная | Описание |
|---|---|
ALLURE_LAUNCH_ID | ID запуска в ТестОпс |
ALLURE_LAUNCH_URL | Ссылка на запуск в ТестОпс |
ALLURE_JOB_RUN_ID | ID запуска джобы в ТестОпс |
ALLURE_TESTOPS_JOB_RUN_URL | Ссылка на запуск джобы в ТестОпс |
Совет
Чтобы вывести в терминале значение только одной переменной, укажите ее название после команды printenv, например printenv ALLURE_TESTOPS_JOB_RUN_URL.
Добавление ссылок на задачи из таск-трекеров к запуску ТестОпс через allurectl
Чтобы добавить ссылки на задачи из таск-трекеров к запуску ТестОпс, созданному через allurectl:
В ТестОпс узнайте ID подключения в интеграции с таск-трекером:
Примечание
Чтобы узнать ID подключения в интеграции с внешней системой, необходима глобальная роль «Администратор».
Перейдите в раздел Администрирование → Интеграции.
В списке настроенных интеграций откройте интеграцию с нужным таск-трекером.
В списке настроенных подключений откройте нужное подключение.
В URL-адресе открытого подключения найдите и сохраните ID этого подключения.
Пример ID в URL-адресе подключения
Предположим, URL-адрес настроенного подключения к Кайтен выглядит как https://testops.example.com/admin/integration/kaiten/connections/6/projects. Число 6 в данном случае — ID подключения, которое необходимо скопировать.
Импортируйте результаты тестов в ТестОпс через allurectl командой
watchилиupload.Выполните в терминале команду
launch add-issue, указав параметры в зависимости от режима работы allurectl:Флаг командной строки Описание --integration-idID подключения в интеграции с таск-трекером в ТестОпс --issue-keysКлючи задач из таск-трекера через запятую без пробела --current-launchЗапуск ТестОпс, в который allurectl импортировал результаты тестов в текущем пайплайне CI-системы. Не требует указания ID Важно
В CI-режиме allurectl понимает, в какой запуск он импортировал результаты тестов, поэтому ID запуска для флага
--current-launchуказывать не нужно. Выполняйте командуlaunch add-issueв той же джобе CI-системы, иначе allurectl не найдет текущий запуск ТестОпс.
Примеры добавления ссылок на задачи из таск-трекера через allurectl
Пример для allurectl в CI-режиме:
bash
allurectl watch -- ./gradlew clean test
allurectl launch add-issue --current-launch --integration-id 6 --issue-keys AE-1,AE-2Пример для allurectl в локальном режиме:
bash
allurectl launch add-issue --launch-id 31897 --integration-id 6 --issue-keys AE-1,AE-2Совет
Флаг --launch-id поддерживается в обоих режимах allurectl. Используйте его в CI-режиме, если необходимо добавить ссылки на задачи из таск-трекеров не к текущему, а к другому запуску ТестОпс.
Импорт результатов тестов из нескольких джоб CI-системы в один запуск ТестОпс через allurectl
Если тесты в CI-системе запускаются из интерфейса ТестОпс, запуск джобы и основной запуск ТестОпс создаются заранее, до начала тестов. ТестОпс передает ID запуска своей джобы в запускаемую джобу CI-системы как значение переменной ALLURE_JOB_RUN_ID. Получив этот параметр, allurectl не создает в ТестОпс новые запуски, а импортирует результаты тестов в уже созданные — в указанный запуск джобы и связанный с ним основной запуск.
Примечание
Вместе с переменной ALLURE_JOB_RUN_ID ТестОпс может передавать в джобу CI-системы список выбранных тестов, например, если запуск создан из тест-плана. Подробнее см. Повторный и выборочный запуски тестов через allurectl.
Если тесты в CI-системе запускаются не из интерфейса ТестОпс, переменной ALLURE_JOB_RUN_ID в джобе CI-системы изначально нет. В этом случае allurectl создает в ТестОпс запуск джобы и основной запуск самостоятельно. Если тесты в пайплайне CI-системы разделены на несколько джоб, для каждой джобы CI-системы создается отдельный запуск в ТестОпс.
Чтобы собрать результаты тестов из нескольких джоб CI-системы в один запуск ТестОпс:
В CI-системе создайте агрегирующую джобу, указав основные параметры импорта через allurectl.
В агрегирующей джобе CI-системы выполните команду
job-run envи сохраните из ее вывода значение переменнойALLURE_JOB_RUN_ID.Примечание
Команда
job-run envвозвращает параметры запуска джобы ТестОпс для текущего пайплайна CI-системы, а если такой запуск джобы еще не создан — создает его.Передайте сохраненное значение
ALLURE_JOB_RUN_IDво вложенные джобы CI-системы, которые запускают тесты.Из каждой вложенной джобы CI-системы импортируйте результаты тестов в ТестОпс командой
watchилиupload.
Результаты тестов из всех джоб CI-системы с одинаковым значением ALLURE_JOB_RUN_ID попадут в один и тот же запуск ТестОпс.
Импорт результатов тестов вне пайплайна CI-системы через allurectl
Если тесты запускаются с помощью пайплайна CI-системы, но их выполнение происходит вне этого пайплайна (например, на удаленной машине или в контейнере Docker), allurectl не обнаруживает метаданные CI-системы. В этом случае он работает в локальном режиме и создает для результатов тестов отдельный запуск в ТестОпс, не связанный с запуском джобы.
Чтобы результаты таких тестов импортировались в запуск ТестОпс, связанный с пайплайном CI-системы, необходимо передать на удаленную сторону контекст этого пайплайна — набор переменных окружения ALLURE_*, по которым allurectl определяет CI-систему, джобу и запуск джобы. Получив контекст, allurectl импортирует результаты тестов из удаленной стороны так, как если бы он это делал внутри родительского пайплайна CI-системы.
Чтобы передать контекст родительского пайплайна CI-системы в allurectl:
В родительском пайплайне CI-системы укажите основные параметры импорта:
ALLURE_ENDPOINT,ALLURE_TOKENиALLURE_PROJECT_ID.В том же пайплайне CI-системы закодируйте контекст в переменную
ALLURE_CI_ENV, например:bashALLURE_CI_ENV=$(allurectl ci env --encode)Команда собирает все переменные
ALLURE_*, заданные в пайплайне CI-системы, в одну строку. Неуказанные параметры allurectl заполняет по данным CI-системы.Переменные, которые allurectl заполняет в пайплайне CI-системы
ALLURE_CI_TYPE,ALLURE_CI_ENDPOINT,ALLURE_JOB_UID,ALLURE_JOB_URL,ALLURE_JOB_NAME,ALLURE_JOB_RUN_UID,ALLURE_JOB_RUN_URL,ALLURE_JOB_RUN_NAME,ALLURE_JOB_RUN_BRANCH.
Передайте значение
ALLURE_CI_ENVна удаленную сторону (например, виртуальную машину или в контейнер Docker) и задайте там эту переменную до запуска allurectl.Если на удаленной стороне результаты тестов лежат не в той директории, что указана в пайплайне CI-системы, исключите
ALLURE_RESULTSиз контекста при кодировании и задайте эту переменную на удаленной стороне.На удаленной стороне импортируйте результаты тестов командой
watch.
Результаты тестов попадут в запуск ТестОпс, связанный с родительским пайплайном CI-системы.

