Azure DevOps

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

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

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

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

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

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

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

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

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

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

# azure-pipelines.yml
trigger:
- main

pool:
  vmImage: ubuntu-latest
strategy:
  matrix:
    Python37:
      python.version: '3.7'

steps:
# Install project dependencies 
- script: |
    python -m pip install --upgrade pip
    pip install -r requirements.txt
  displayName: 'Install dependencies'

# Execute test and generate report
- script: |
    pytest --junitxml=results/test-results.xml src/tests.py
  displayName: 'Run tests'

# Install Test IT CLI and submit test results to TMS
- script: |
    pip install testit-cli
    testit results import \
      --url <YOUR_INSTANCE_URL> \
      --project-id 5236eb3f-7c05-46f9-a609-dc0278896464 \
      --configuration-id 15dbb164-c1aa-4cbf-830c-8c01ae14f4fb \
      --testrun-name "Azure DevOps test run" \
      --results results/test-results.xml
  displayName: 'Submit results'
  condition: always()

Простым добавлением необходимых шагов вы можете запускать множество необходимых вам тестов и загружать их в Test IT. Больше информации вы можете найти в официальной документацииopen in new window.

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

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

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

# azure-pipelines.yml
trigger:
- main

pool:
    vmImage: ubuntu-latest

jobs:
- job: Create
  steps:
  # Install Test IT CLI, create testrun and save testrun id to variable
  — script: |
      pip install testit-cli
      testit testrun create \
        --url <YOUR_INSTANCE_URL> \
        --project-id 5236eb3f-7c05-46f9-a609-dc0278896464 \
        --testrun-name "Azure DevOps test run" \
        --output output.txt
      echo "##vso[task.setvariable variable=testRunId;isoutput=true]$(cat output.txt)"
    name: 'create'

- job: ParallelTesting
  dependsOn: Create
  variables:
    testRunId: $[ dependencies.Create.outputs['create.testRunId'] ]    
  strategy:
    parallel: 2
  steps:
  # Install project dependencies 
  - script: |
      python -m pip install --upgrade pip
      pip install -r requirements.txt
    displayName: 'Install dependencies'

  # Execute test and generate report
  - script: |
      pytest --junitxml=results/test-results.xml src/tests.py
    displayName: 'Run tests'

  # Install Test IT CLI and submit test results to TMS
  - script: |
      pip install testit-cli
      testit results upload \
        --url <YOUR_INSTANCE_URL> \
        --testrun-id $(testRunId) \
        --configuration-id 15dbb164-c1aa-4cbf-830c-8c01ae14f4fb \
        --results results/test-results.xml
    displayName: 'Submit results'
    condition: always()

- job: Complete
  condition: always()
  dependsOn: [ParallelTesting, Create]
  variables:
    testRunId: $[ dependencies.Create.outputs['create.testRunId'] ]
  steps:
  # Install Test IT CLI and complete testrun
  - script: |
      pip install testit-cli
      testit testrun complete \
        --url <YOUR_INSTANCE_URL> \
        --testrun-id $(testRunId)
    displayName: 'Complete'    

Безопасное хранение данных

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

Используйте секреты Azure DevOps для хранения чувствительной информации. Подробнее с секретами вы можете ознакомится в официальной документацииopen in new window.

Обновлено: