Загрузка результатов тестов из Bitbucket
Вам нужно использовать allurectl для загрузки результатов тестов из Bitbucket. Ниже представлены базовые шаблоны, обеспечивающие ожидаемую работу с ТестОпс.
Примечание
Чтобы настроить или удалить интеграцию в ТестОпс, вы должны иметь доступ к разделам:
- Администрирование — необходимы права администратора инстанса;
- Настройки в конкретном проекте — необходима роль владельца этого проекта.
Важно
Для правильной работы с повторными запусками пайплайна Bitbucket в ТестОпс необходимо использовать версию allurectl 2.15.3.
Инструкция охватывает следующие моменты интеграции:
- Аутентификация пайплайна Bitbucket в ТестОпс для загрузки результатов тестов.
- Простой пример пайплайна для понимания рабочих процессов с использованием allurectl.
Токен аутентификации
На стороне ТестОпс вам нужно создать API-токен. Этот токен будет использоваться allurectl для аутентификации в инстансе ТестОпс.
Шаги
В ТестОпс нажмите на ваш аватар и перейдите в раздел API-токены.
Нажмите + Токен.
Введите название токена, которое поможет вам распознать интеграцию, например, Токен для Bitbucket.
Нажмите Создать.
ТестОпс сгенерирует токен и отобразит его в модальном окне.
Нажмите иконку Копировать, чтобы скопировать токен в буфер обмена.
Cохраните токен в безопасном месте, он понадобится для настройки интеграции в Bitbucket.
Загрузка результатов тестов из Bitbucket
Предварительные условия
Ознакомьтесь с инструкцией allurectl. В большинстве случаев вам нужно использовать сценарий watch.
Совет
Мы рекомендуем использовать переменные окружения вместо переключателей командной строки для настройки allurectl. Этот подход позволяет иметь более понятную командную строку.
Переменные, необходимые для allurectl
Укажите следующие параметры в соответствии с инструкцией allurectl:
ALLURE_ENDPOINT(обязательно) — URL-адрес инстанса ТестОпс, например, https://testops.example.com.ALLURE_TOKEN(обязательно) — API-токен, используемый для аутентификации.ALLURE_PROJECT_ID(обязательно) — cистемный ID проекта, в который вы собираетесь загружать результаты тестов.ALLURE_LAUNCH_NAME(обязательно) — шаблон названия запуска.ALLURE_RESULTS(обязательно) — директория, в которой allurectl должен искать результаты тестов.ALLURE_LAUNCH_TAGS(опционально) — теги, которые будут присвоены созданному запуску.
Ниже мы объясним, где эти параметры могут быть использованы.
ALLURE_ENDPOINT в переменных рабочего пространства
Совет
Это один из вариантов указания переменной. Вы также можете указать эту переменную в описании пайплайна.
Обычно у вас есть только один инстанс ТестОпс. Это означает, что переменную ALLURE_ENDPOINT можно определить на более высоком уровне сущностей Bitbucket, например, в настройках рабочего пространства. Чтобы открыть их, используйте следующий путь и замените {ORGNAME} на название вашей организации: https://bitbucket.org/{ORGNAME}/workspace/settings/addon/admin/pipelines/account-variables.
Добавьте переменную ALLURE_ENDPOINT и ее значение в настройки Bitbucket.

Вы также можете использовать эту переменную вместе с другими в пайплайне (объяснено ниже).
Простой пайплайн
Логика пайплайна указывается по умолчанию в файле bitbucket-pipelines.yml. Для примера мы приведем самый простой пайплайн с использованием allurectl.
Пример пайплайна
yaml
image: gradle:8.10-jdk21
pipelines:
custom:
test:
- variables:
- name: ALLURE_LAUNCH_NAME
default: ""
- name: ALLURE_LAUNCH_TAGS
default: "bitbucket, junit5"
- step:
name: Run tests
script:
- printenv
- wget https://github.com/allure-framework/allurectl/releases/latest/download/allurectl_linux_amd64 -O ./allurectl
- chmod +x ./allurectl
- ALLURE_LAUNCH_NAME="${BITBUCKET_REPO_FULL_NAME} - $BITBUCKET_BUILD_NUMBER"
- ./allurectl watch -- gradle --no-daemon clean testКомментарии
Эта часть обязательна для интеграции с ТестОпс, так как эти переменные должны присутствовать в контексте всего пайплайна, и мы должны иметь возможность переопределять значения этих переменных во время выполнения пайплайна.
yaml
custom:
test:
- variables:Все переменные из примера должны быть добавлены в эту часть.
ALLURE_LAUNCH_NAMEALLURE_LAUNCH_TAGS
Настройка пайплайна — добавление переменных
Выше мы говорили, что есть переменные, используемые allurectl для отправки результатов тестов на инстанс ТестОпс.
ALLURE_ENDPOINTALLURE_TOKENALLURE_PROJECT_ID
Переменная ALLURE_ENDPOINT может быть добавлена либо в переменные рабочего пространства (см. выше), либо так же, как и другие две — на уровне конфигурации пайплайна.
Чтобы это сделать:
- Выберите раздел Source.
- Нажмите на
bitbucket-pipelines.yml. - Нажмите Edit.
- Снова нажмите Edit.
- Вы увидите вкладку Configure и настройки Add variables, которые нужно развернуть.

Добавьте следующие переменные в раздел, который вы только что открыли:
ALLURE_ENDPOINT— не secured;ALLURE_TOKEN— secured;ALLURE_PROJECT_ID— не secured;ALLURE_RESULTS— не secured.
Мы не упоминали ALLURE_RESULTS ранее, но это обязательная переменная, которая должна быть видна глобально и не будет изменяться во время выполнения, поэтому лучше добавить ее здесь.
После добавления переменных закройте окно, после чего вы можете запустить свой пайплайн.
Сбор информации о тестовой среде
Зачем?
Довольно редко тесты запускаются без каких-либо параметров, которые определяют различные условия для их выполнения. Эти условия могут быть, например:
- разные хосты для выполнения тестов, например: инстанс QA, инстанс staging;
- разные браузеры для тестирования интерфейса;
- ветка VCS для тестирования изменений перед их появлением в основной ветке.
Когда ТестОпс собирает эту информацию, это позволяет вам запускать джобы с выбранным вами окружением прямо из интерфейса ТестОпс.
Как?
Добавление переменных окружения в пайплайн на стороне Bitbucket
Переменные окружения могут быть добавлены в раздел, где мы добавили переменные, необходимые для allurectl:
yaml
custom:
test:
- variables:Добавим информацию о версии продукта и о браузере, которые используются для тестов:
PRODUCT_VERSIONTESTS_BROWSER
Обновите пайплайн следующим образом
yaml
test:
- variables:
- name: ALLURE_LAUNCH_NAME
default: ""
- name: ALLURE_LAUNCH_TAGS
default: "bitbucket, junit5"
- name: PRODUCT_VERSION
default: "1.23"
- name: TESTS_BROWSER
default: "chrome"Теперь окно запуска пайплайна должно выглядеть следующим образом:

Пожалуйста, убедитесь, что переменная ALLURE_LAUNCH_NAME не оставлена пустой. Используйте следующий код в вашем пайплайне, чтобы задать значение переменной, которое затем будет передано в интерфейс ТестОпс:
yaml
- ALLURE_LAUNCH_NAME="${BITBUCKET_REPO_FULL_NAME} - $BITBUCKET_BUILD_NUMBER"Настройка ТестОпс для обработки переменных окружения из Bitbucket
allurectl отправляет весь набор переменных окружения из пайплайна в ТестОпс. Эти данные также включают добавленные параметры окружения.
Настроим проект ТестОпс для обработки этой информации.

Откройте ваш проект ТестОпс.
Перейдите в раздел Настройки → Окружение.
Для каждой переменной:
- Нажмите + Создать.
- Добавьте название переменной окружения в поле Ключ.
- Выберите глобальную переменную окружения из списка (эти переменные создаются администраторами ТестОпс).
- Нажмите Отправить.
Снова запустите джобу через интерфейс Bitbucket.
Когда запуск появится в списке запусков в ТестОпс, переменные должны быть отображены.
Запуск пайплайна из ТестОпс
Чтобы запустить пайплайн в CI-системе, вам нужно добавить конкретную интеграцию на глобальном уровне и на уровне текущего проекта. Затем эта интеграция будет использоваться в настройках джобы.
Этот раздел охватывает следующие моменты:
- Краткий обзор процесса интеграции.
- Настройки джобы.
Краткий обзор интеграции
- Создайте учетные данные на внешней системе для использования API.
- Добавьте необходимую интеграцию на глобальном уровне ТестОпс.
- Добавьте необходимую интеграцию на уровне проекта и укажите учетные данные, которые вы получили на шаге 1.
Глобальный уровень
Перейдите в раздел Администрирование → Интеграции.
В правом верхнем углу нажмите + Добавить интеграцию.
Найдите Bitbucket.
Нажмите на логотип Bitbucket.
Укажите название для интеграции.
Например, вы можете использовать URL-адрес инстанса Bitbucket без
http(s)://.Укажите URL-адрес Bitbucket в поле Endpoint.
Например,
https://bitbucket.org.Нажмите Добавить интеграцию.
На следующей странице вы можете протестировать соединение, обновить параметры или удалить интеграцию.
Уровень проекта
На уровне проекта вам нужно добавить созданную интеграцию в проект, в котором вы работаете, и предоставить учетные данные для авторизации ТестОпс для запуска пайплайна.
Учетные данные Bitbucket
Для интеграции с Bitbucket нам нужны имя пользователя и пароль приложения.
Вы можете использовать свою учетную запись или создать новую служебную учетную запись на ваше усмотрение.
Перейдите в настройки учетной записи — https://bitbucket.org/account/settings/.
Скопируйте свое имя пользователя (в разделе Bitbucket profile settings).
Перейдите в настройки паролей приложений — https://bitbucket.org/account/settings/app-passwords/.
Нажмите Create app password.
Придумайте название для пароля.
Укажите необходимые разрешения:
- Account read (необходимо для тестирования соединения);
- Issues > Write (если вы собираетесь связывать джобы из Bitbucket с сущностями ТестОпс);
- Pipeline > Edit variables (для установки значений переменных);
- Repositories > Read (для чтения файла пайплайна).
Создайте пароль приложения.
Скопируйте созданный пароль.
Настройка интеграции в вашем проекте ТестОпс
- Откройте ваш проект ТестОпс.
- Перейдите в раздел Настройки → Интеграции.
- Найдите интеграцию Bitbucket, которую хотите добавить.
- Нажмите Добавить интеграцию.
- В появившемся окне введите учетные данные: имя пользователя и пароль приложения, который мы создали на предыдущем шаге.
- Протестируйте соединение.
- Завершите настройки интеграции, нажав Добавить интеграцию.
Теперь мы готовы настроить джобу.
Настройки джоб в ТестОпс
Джоба в ТестОпс — это сущность, связанная с пайплайном CI-системы. Процесс загрузки результатов тестов — это запуск джобы. Все параметры запуска джобы управляются ТестОпс и CI-плагином (allurectl).
Пайплайн имеет параметры (передаваемые как переменные окружения), которые могут быть использованы для запуска пайплайна со стороны ТестОпс. Для этого вам нужно настроить джобу и создать интеграцию, позволяющую запускать джобы в CI-системе.
Чтобы иметь возможность запускать связанные пайплайны, вам нужно настроить CI-систему (что было сделано на предыдущем шаге).
Также, чтобы начать использовать джобу для создания запусков тестов и запуска пайплайнов из интерфейса ТестОпс, вам нужно настроить подобную джобу:

- Выберите CI-систему, настроенную на уровне проекта с валидными правами доступа.
- Отметьте джобу как доступную для запуска тестов.
- Свяжите переменные окружения, полученные от джобы, с глобальными переменными окружения.
- Нажмите Отправить.
Важно
Как вы видите, есть 2 специальные переменные: Branch и CustomName.
Branch слева нужно связать с глобальной переменной окружения Branch справа. В середине укажите название ветки для запуска по умолчанию.
CustomName не требует соответствующей переменной справа, но требует установки значения по умолчанию. Это значение — название вашего пайплайна из файла bitbucket-pipelines.yml.
Запуск пайплайна
Запуск пайплайна (который создаст запуск в ТестОпс) можно выполнить в следующих разделах ТестОпс:
- Список тест-кейсов — выберите тест-кейсы и используйте массовую операцию Запустить.
- Список результатов тестов — выберите результаты и используйте массовую операцию Перезапустить.
- Тест-планы — нажмите кнопку Запустить нужного тест-плана.
- Джобы — нажмите кнопку Запустить нужной джобы.
Все указанные действия приведут к появлению окна, в котором можно указать параметры запуска.
Запуск пайплайна на альтернативном окружении
Альтернативное окружение означает, что вы хотите использовать параметры, отличные от тех, которые используются в пайплайне по умолчанию.
В окне редактирования джобы в ТестОпс нажмите Добавить переменную окружения.
Установите необходимые значения для переменных окружения, которые нужно изменить, и нажмите Сохранить окружение.
Вы можете добавить несколько наборов окружений, в этом случае ТестОпс создаст несколько запусков пайплайна с различными наборами параметров, и все они загрузят результаты тестов в один и тот же запуск.
Пример завершенного пайплайна
Вот очень простой пример файла пайплайна Bitbucket, который должен дать общее представление о настройке работы с ТестОпс:
yaml
# bitbucket-pipelines.yml
image: python:3.8
pipelines:
custom:
pytest python tests:
- variables:
- name: ALLURE_LAUNCH_NAME
default: ""
- name: ALLURE_LAUNCH_TAGS
default: "bitbucket, pytest"
- name: ALLURE_RESULTS
default: "allure-results"
- name: TESTS_ENDPOINT
default: "https://testops.testing.com"
- name: TESTS_BROWSER
default: "firefox"
- name: ALLURE_PROJECT_ID
default: "830"
- name: ALLURE_ENDPOINT
default: "https://testops.example.com"
- step:
name: pytest tests
script:
- /usr/local/bin/python -m pip install --upgrade pip
- pip install pytest allure-pytest
- ALLURE_LAUNCH_NAME="${BITBUCKET_REPO_FULL_NAME} - $BITBUCKET_BUILD_NUMBER"
- wget https://github.com/allure-framework/allurectl/releases/download/2.15.6/allurectl_linux_amd64 -O ./allurectl
- chmod +x ./allurectl
- ./allurectl watch -- pytest test --alluredir=${ALLURE_RESULTS}Здесь pytest python tests: — обязательное название пайплайна, необходимое для вызова пайплайна через API.
ALLURE_LAUNCH_NAME, ALLURE_LAUNCH_TAGS, ALLURE_RESULTS, ALLURE_PROJECT_ID и ALLURE_ENDPOINT — это переменные, необходимые для allurectl, чтобы загрузить результаты тестов в ТестОпс.
Удаление интеграции
Вы можете удалить интеграцию с Bitbucket двумя способами — на уровне всего инстанса ТестОпс (через раздел Администрирование) или на уровне отдельного проекта (через настройки проекта).
Важно
Последствия удаления интеграции:
Удаление на уровне инстанса — связь с инстансом Bitbucket будет удалена из всех джоб ТестОпс, которые относятся к интеграции:
- Иконки для запуска и обновления этих джоб в разделе Джобы станут неактивными.
- Результаты запусков тестов из Bitbucket не будут отправляться в инстанс ТестОпс.
Удаление на уровне проекта — связь с инстансом Bitbucket будет удалена из джобы ТестОпс, которая относится к интеграции и находится в этом проекте:
- Иконки для запуска и обновления этой джобы в разделе Джобы останутся активными.
- ТестОпс не сможет запустить тесты из проекта на стороне Bitbucket. После закрытия запуска результаты этих тестов получат статус Неизвестный.
- Результаты запусков тестов из Bitbucket не будут отправляться в проект ТестОпс.
Перейдите в раздел Администрирование → Интеграции.
В списке настроенных интеграций найдите и откройте вашу интеграцию с Bitbucket.
Перейдите на вкладку Проекты и убедитесь, что интеграция не используется в проектах ТестОпс.
Если интеграция подключена к проектам, удалите ее из них. Для этого напротив названия каждого проекта нажмите иконку корзины → Удалять.
Перейдите на вкладку Конфигурация.
Нажмите Удалить интеграцию.
Нажмите Удалить.

