Запуск автотестов из 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-pytest) 

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

  3. файл .gitlab-ci.yml 

  4. файл connection_config.ini, подхватывающий нужные переменные окружения 


Пример requirements.txt: 

1


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

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

 

2


 

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

3


Пример connection_config.ini: 

 

4


 Данный пример настройки также описан на GitHub Test IT тут.

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

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

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

Пример .gitlab-ci.yml файла при наличии connection_config.ini: 

 

5


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

 

6


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

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

  

7


Настройка рабочего проекта 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 

 

8


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

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

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

  3. variables[URL] = $TESTIT_URL 

  4. variables[TEST_RUN_ID] = $TEST_RUN_ID 

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


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

  

9


Готово! 


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

 

10


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

 

11


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

 

12


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

 

13


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

 

14


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

 

15


16