GitLab

Test IT поддерживает интеграцию с GitLab. Для настройки используется все несколько строк кода и поддерживаются любые тестовые фреймворки и платформы.

Вы можете интегрировать как простые проекты (только с запуском тестов), так и сложные проекты (несколько отдельных проектов), которые запускаются в несколько независимых потоков.

Независимо от ваших требований процесс интеграции будет одинаков:

  1. Запуск автоматизированных тестов в пайплайнах GitLab
  2. Генерация JUnit XML отчета с результатами автоматизированных тестов
  3. Загрузка результатов с помощью Test IT CLI

Используйте переменную окружения

Чтобы утилита Test IT CLI работала корректно, передавайте приватный токен через переменную окружения TMS_TOKEN. О безопасной передаче токена читайте в разделе Безопасное хранение данных.

Стандартный запуск

Данная инструкция описывает запуск простого проекта в GitLab. Она актуальна для любых тестовых фреймворков и платформ. В качестве примера описан запуск с помощью тестового фреймворка Pytest для Python.

Для быстрой и простой интеграции с Test IT вы можете использовать утилиту Test IT CLI, которая позволяет загрузить все результаты автотестов с помощью одной команды.

Ниже представлен пример файла .gitlab-ci.yml, который отвечает за работу пайплайнов в GitLab:

# .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. Больше информации вы можете найти в официальной документацииopen in new window.

Параллельный запуск

Test IT поддерживает параллельный запуск автоматизированных тестов в GitLab. При этом добавляются дополнительные независимые шаги для создания, завершения тест-рана (прогона) и запуска тестов.

Ниже представлен пример файла .gitlab-ci.yml, который отвечает за работу пайплайнов в GitLab:

# .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 \
      --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 для хранения чувствительной информации. Подробнее с переменными вы можете ознакомится в официальной документацииopen in new window.

Обновлено: