CircleCI

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

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

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

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

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

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

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

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

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

Ниже представлен пример файла .circleci/config.yml, который отвечает за работу пайплайнов в CircleCI:

# .circleci/config.yml
version: 2.1

jobs:
  test:
    docker:
      - image: python:3.10-bullseye

    steps:
      - checkout

      - attach_workspace:
          at: ~/

     # Install project dependencies
      - run: 
          command:  |
            python -m pip install --upgrade pip
            pip install -r requirements.txt

      # Execute test and generate report
      - run:
          command: |
            pytest --junitxml=results/test-results.xml src/tests.py

      # Install Test IT CLI and submit test results to TMS
      - run:
          when: always
          command: |
            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 "CircleCI test run" \
              --results results/test-results.xml

      - store_artifacts:
          path: results
          destination: test_results
      - store_test_results:
          path: results

workflows:
  version: 2
  full:
    jobs:
      - test

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

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

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

Ниже представлен пример файла .circleci/config.yml, который отвечает за работу пайплайнов в CircleCI:

# .circleci/config.yml
version: 2.1

jobs:
  create:
    docker:
      - image: python:3.10-bullseye

    steps:
      - attach_workspace:
          at: ~/

      # Install Test IT CLI and create testrun
      - run:
          command: |
            pip install testit-cli
            testit testrun create \
              --url <YOUR_INSTANCE_URL> \
              --project-id 5236eb3f-7c05-46f9-a609-dc0278896464 \
              --testrun-name "CircleCI test run" \
              --output output.txt 
      - persist_to_workspace:
          root: ~/
          paths:
            - project

  test:
    docker:
      - image: python:3.10-bullseye

    parallelism: 4

    steps:
      - checkout

      - attach_workspace:
          at: ~/

      # Install project dependencies 
      - run: 
          command:  |
            python -m pip install --upgrade pip
            pip install -r requirements.txt

      # Execute test and generate report
      - run:
          command: |
            pytest --junitxml=results/test-results.xml src/tests.py

      # Install Test IT CLI and submit test results to TMS
      - run:
          when: always
          command: |
            pip install testit-cli
            testit results upload \
              --url <YOUR_INSTANCE_URL> \
              --testrun-id "$(cat output.txt)" \
              --configuration-id 15dbb164-c1aa-4cbf-830c-8c01ae14f4fb \
              --results results/test-results.xml

      - store_artifacts:
          path: results
          destination: test_results
      - store_test_results:
          path: results

  complete:
    docker:
      - image: python:3.10-bullseye

    steps:
      - attach_workspace:
          at: ~/

      # Install Test IT CLI and complete testrun
      - run:
          when: always
          command: |
            pip install testit-cli
            testit testrun complete \
              --url <YOUR_INSTANCE_URL> \
              --testrun-id "$(cat output.txt)"
workflows:
  version: 2
  full:
    jobs:
      - create
      - test:
          requires:
            - create
      - complete:
          requires:
            - test

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

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

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

Обновлено: