GitLab
Test IT поддерживает интеграцию с GitLab. Для настройки используется всего несколько строк кода и поддерживаются любые тестовые фреймворки и платформы.
Вы можете интегрировать как простые проекты (только с запуском тестов), так и сложные проекты (несколько отдельных проектов), которые запускаются в несколько независимых потоков.
Независимо от ваших требований процесс интеграции будет одинаков:
- Запуск автоматизированных тестов в пайплайнах GitLab
- Генерация JUnit XML отчета с результатами автоматизированных тестов
- Загрузка результатов с помощью Test IT CLI
Используйте переменную окружения
Чтобы утилита Test IT CLI работала корректно, передавайте приватный токен через переменную окружения TMS_TOKEN
. О безопасной передаче токена читайте в разделе Безопасное хранение данных.
Стандартный запуск
Данная инструкция описывает запуск простого проекта в GitLab. Она актуальна для любых тестовых фреймворков и платформ. В качестве примера описан запуск с помощью тестового фреймворка Pytest для Python.
Для быстрой и простой интеграции с Test IT вы можете использовать утилиту Test IT CLI
, которая позволяет загрузить все результаты автотестов с помощью одной команды.
Ниже представлен пример файла .gitlab-ci.yml
, который отвечает за работу пайплайнов в GitLab (необходимо указать URL вашего ресурса):
# .gitlab-ci.yml
default:
image: python:3.10-bullseye
stages:
- test
test:
stage: test
script:
# Install project dependencies
- pip install -r requirements.txt
# Execute test and generate report
- pytest --junitxml=results/test-results.xml src/tests.py
after_script:
# Install Test IT CLI
- pip install testit-cli
# Submit test results to TMS
- testit results import \
--url <YOUR_INSTANCE_URL> \
--project-id 5236eb3f-7c05-46f9-a609-dc0278896464 \
--configuration-id 15dbb164-c1aa-4cbf-830c-8c01ae14f4fb \
--testrun-name "GitLab test run" \
--results results/test-results.xml
artifacts:
when: always
reports:
junit:
- results/test-results.xml
Простым добавлением необходимых шагов вы можете запускать множество необходимых вам тестов и загружать их в Test IT. Больше информации вы можете найти в официальной документации.
Параллельный запуск
Test IT поддерживает параллельный запуск автоматизированных тестов в GitLab. При этом добавляются дополнительные независимые шаги для создания, завершения тест-рана (прогона) и запуска тестов.
Ниже представлен пример файла .gitlab-ci.yml
, который отвечает за работу пайплайнов в GitLab (необходимо указать URL вашего ресурса и токен переменной):
# .gitlab-ci.yml
default:
image: python:3.10-bullseye
stages:
- create
- test
- complete
create:
stage: create
script:
# Install Test IT CLI
- pip install testit-cli
# Create testrun
- testit testrun create \
--url <YOUR_INSTANCE_URL> \
--project-id 5236eb3f-7c05-46f9-a609-dc0278896464 \
--token <TOKEN_VARIABLE> \
--testrun-name "GitLab test run" \
--output output.txt
# Export TMS_TEST_RUN_ID env variable
- echo "TMS_TEST_RUN_ID=$(cat output.txt)" > tms.env
artifacts:
reports:
dotenv: tms.env
test:
parallel: 4
stage: test
script:
# Install project dependencies
- pip install -r requirements.txt
# Execute test and generate report
- pytest --junitxml=results/test-results.xml src/tests.py
after_script:
# Install Test IT CLI
- pip install testit-cli
# Submit test results to TMS
- testit results upload \
--url <YOUR_INSTANCE_URL> \
--configuration-id 15dbb164-c1aa-4cbf-830c-8c01ae14f4fb \
--results results/test-results.xml
artifacts:
when: always
reports:
junit:
- results/test-results.xml
dependencies:
- create
complete:
stage: complete
script:
# Install Test IT CLI
- pip install testit-cli
# Complete testrun
- testit testrun complete \
--url <YOUR_INSTANCE_URL>
dependencies:
- test
- create
when: always
Безопасное хранение данных
Для работы утилиты Test IT CLI вам необходимо использовать приватный токен для авторизации. Хранение данного токена и другой чувствительной информации в коде строго не рекомендуется, так как доступ к этой информации будет иметь любой у кого есть доступ к коду.
Используйте проектные переменные GitLab для хранения чувствительной информации. Подробнее с переменными вы можете ознакомится в официальной документации.