Запуск автотестов из Test IT в интеграции с фреймворком PyTest и Gitlab CI

Система управления тестированием Test IT позволяет работать в одном интерфейсе с ручными и автоматизированными тестами. Можно связывать автотесты с тест-кейсами и хранить информацию в системе, запускать наравне с ручными и анализировать результаты запусков. Результаты автоматически проставляются в TMS-системе с треком ошибок и скриншотами, что удобно при анализе тест-планов. 

Неважно, на каком языке написаны ваши автотесты, а также какую CI-систему вы используете. Test IT может интегрироваться практически с любыми фреймворками и инструментами. В этой статье-инструкции подробно объясним, как связать автотесты на Pytest с Gitlab CI и Test IT и потом с этим работать.

Алгоритм работы выглядит следующим образом: 

  1. Подготовка к интеграции 

  2. Настройка GitLab 

  3. Создание gitlab-ci.yml 

  4. Получения токена  

  5. Настройка рабочего проекта Test IT 

  6. Настройка webhook в Test IT 

  7. Запуск тест-рана из Test IT

  8. Проверка журнала логов webhook 

  9. Пайплайн с GitLab 

  10. Выполнение пайплайна 

  11. Завершение пайплайна 

  12. Проставление результатов в Test IT 

Ниже распишем каждый шаг подробнее. 

Подготовка 

Для начала интеграции требуется: 

  • Рабочий проект в системе Test IT со слинкованными между собой тест-кейсами и автотестами 

  • GitLab репозиторий со следующим наполнением: 

  1. файл requirements.txt с указанием пакетов для установки (pytest, testit-adapter-pytest, testit-api-client) 

  2. актуальные автотесты (код автотестов должен отражать ситуацию в рабочем проекте Test IT)


Пример requirements.txt: 


Пример актуального автотеста: 

  • в системе Test IT тест-кейс с глобальным идентификатором “55” связан с автотестом с идентификаором автотеста “externalID8” 

 

 

  • GitLab имеет автотест с декораторами externalID “externalID8“ и workItemID “55“, что отражает ситуацию в рабочем проекте Test IT

Настройка GitLab репозитория 

Создание .gitlab-ci.yml: 

Необходимо перейти во вкладку CI/CD > Editor и настроить .gitlab-ci.yml файл для установки необходимых пакетов из файла requirements.txt и запуска автотестов с необходимыми переменными окружения. 

Пример .gitlab-ci.yml файла (нужно прописать через параметры командной строки использование переменных окружения):

 

Получения токена: 

Перейдите во вкладку Settings > CI/CD > Pipeline triggers и добавьте trigger (Description можно указать любым). 

  

Настройка рабочего проекта Test IT 

Настройка webhook в Test IT: 

Перейдите во вкладку во вкладку Project Settings > WebHooks и добавьте новый WebHook. 

Настройки WebHook: 

  • установите активацию вебхука при запуске автотестов 

  • установите POST-запрос следующим образом: 

       https://{DOMAIN}/api/v4/projects/{PROJECT_ID}/trigger/pipeline,

 
       где DOMAIN - инстанс, где располагается репозиторий GitLab;

       PROJECT_ID - глобальный идентификатор репозитория GitLab 

 


  • в URL parameters установите следующие передаваемые параметры: 

  1. ref = название ветки GitLab репозитория с автотестами

  2. token = token триггера, который был создан в шаге 2 при настройке GitLab репозитория

  3. variables[URL] = $SERVER_URL

  4. variables[TEST_RUN_ID] = $TEST_RUN_ID

  5. variables[PRIVATE_TOKEN] = API secret key из профиля Test IT


Пример рабочего WebHook: 

  


Готово! 


Запуск тест-рана из Test IT 

 

Проверка журнала логов вебхуков

 


Пайплайн с гитлаба 

 


Выполнение пайплайна 

 


Завершение пайплайна 

 


Проставление результатов в Test IT