Настройка адаптера и первый локальный прогон автотестов (на примере pytest)
🎯 Задача
Обеспечить автоматическую передачу результатов автотестов на pytest в Test IT с сохранением истории прогонов, детализацией по шагам, привязкой к ручным тест-кейсам и возможностью анализировать тренды.
💡 Решение
Подключим адаптер testit-adapter-pytest. После настройки каждый запуск pytest --testit автоматически создает в Test IT прогон с полными результатами.
Перед началом работы
📝 Вам потребуются:
- Python 3.9 или более поздняя версия (проверьте с помощью команды
python --version) - Доступ к Test IT с системной ролью не ниже, чем Пользователь и проектными ролями с возможностями редактирования к библиотеки автотестов и выполнения тестов
- Проект с тестами в pytest. Если у вас их еще нет — наши готовые примеры можно скачать на GitHub.
- Адаптер Test IT для pytest
⏱ Время: ≈30 мин
Шаг 1: устанавливаем адаптер
ℹ️ Подробнее об адаптере Test IT
🛠️ Установите адаптер для своей поставки Test IT — облачной или серверной.
Для облачной версии всегда устанавливается актуальная версия адаптера.
- Установите адаптер с помощью команды:
pip install testit-adapter-pytest - Проверьте корректность установки адаптера с помощью команды:Отобразится название и версия пакетов адаптера.
pip show testit-adapter-pytest
- Перейдите на страницу https://github.com/testit-tms/adapters-python.
- Найдите релиз с постфиксом
postи цифрами соответствующими вашей версии Test IT (например,testit-adapter-pytest-3.11.1.post560подойдет для Test IT 5.6). - Установите адаптер с помощью команды:После выполнения команды все необходимые зависимости подтянутся автоматически. Дополнительная установка пакетов не требуется.
pip install testit-adapter-pytest==3.11.1.post560 - Проверьте корректность установки адаптера с помощью команды:Отобразится название и версия пакетов адаптера.
pip show testit-adapter-pytest
✅ Результат: На ваш компьютер установлен адаптер pytest с необходимыми пакетами.

Шаг 2: определяем конфигурацию адаптера и выбираем режим работы
ℹ️ О конфигурации адаптера для pytest на GitHub
🛠️ Чтобы сконфигурировать адаптер:
- В корневой папке проекта cоздайте конфигурационный файл
connection_config.ini. - В файле
connection_config.iniукажите необходимые параметры в зависимости от режима работы адаптера (определяется параметромadapterMode):- Mode 0 (используется по умолчанию): загрузка результатов в существующий прогон с фильтрацией
- Mode 1: загрузка результатов в существующий прогон без фильтрации
- Mode 2 (рекомендуется): автоматическое создание нового прогона
Укажите режим работы адаптера
Если не указать режим работы (
adapterMode), адаптер будет использовать Mode 0 по умолчанию и потребует обязательный параметрtestRunId.Mode 2 (рекомендуется)Описание: Адаптер создает новый прогон в Test IT и отправляет результаты всех запущенных тестов в этот новый прогон.
Когда использовать: Идеально для локальной отладки, первичного подключения и ежедневных запусков без заранее созданного тест-плана. Вам не нужно предварительно ничего создавать в интерфейсе TMS.
Пример
connection_config.ini:[testit] url = http://192.168.187.81/ privateToken = S2RZUmpiRnp4U1RlRmNmVEcz projectId = 569f28f1-a8f9-4762-b12b-c40955bc63f1 configurationId = be1b1df4-aae6-4f5f-a8df-2be01d5c0311 automaticCreationTestCases = false certValidation = false adapterMode = 2Mode 0 (по умолчанию)Описание: Адаптер фильтрует тесты по ID прогона и ID конфигурации, и отправляет результаты в этот же прогон.
Когда использовать: Когда прогон уже сформирован в интерфейсе Test IT (в нем лежит определенный набор тестов), и вам нужно запустить локально строго этот набор, проигнорировав остальные автотесты в вашем проекте.
Пример connection_config.ini:
[testit] url = http://192.168.187.81/ privateToken = S2RZUmpiRnp4U1RlRmNmVEcz projectId = 569f28f1-a8f9-4762-b12b-c40955bc63f1 configurationId = be1b1df4-aae6-4f5f-a8df-2be01d5c0311 automaticCreationTestCases = false certValidation = false adapterMode = 0 testRunId = 98765432-10ab-cdef-9876-543210fedcbaMode 1Описание: Адаптер отправляет результаты всех запущенных тестов в существующий прогон без фильтрации. Дополнительно можно задать фильтрацию через использование утилиты командной строки Test IT CLI.
Когда использовать: В системе уже есть прогон, и вы хотите запустить все локальные тесты и загрузить их результаты в этот прогон.
Пример
connection_config.ini:[testit] url = http://192.168.187.81/ privateToken = S2RZUmpiRnp4U1RlRmNmVEcz projectId = 569f28f1-a8f9-4762-b12b-c40955bc63f1 automaticCreationTestCases = false certValidation = false adapterMode = 1 testRunId = 98765432-10ab-cdef-9876-543210fedcba
📝 Параметры конфигурации (список)
| # | Параметр | Обязательный | Описание |
|---|---|---|---|
| 1 | url | Да | URL Test IT |
| 2 | privateToken | Да | API-токен В Test IT: Настройки профиля → Безопасность |
| 3 | projectId | Да | GUID проекта из URL В Test IT: Проекты → Меню действий → Скопировать ID |
| 4 | configurationId | Рекомендуется | GUID конфигурации (если не указать — результаты попадут в Any). В Test IT: Конфигурации → Меню действий → Скопировать GUID |
| 5 | testRunId | Для Mode 0-1 | GUID существующего прогона Test IT В Test IT: Прогоны → Меню действий → Скопировать ID |
| 6 | testRunName | Нет | Название прогона (для Mode 2). По умолчанию: Pytest run {timestamp} |
| 7 | adapterMode | Важно | Выбор режима: 0, 1 или 2. По умолчанию: 0. |
| 8 | automaticCreationTestCases | Нет | true — создавать ручные кейсы из автотестов false (по умолчанию) — не создавать |
| 9 | automaticUpdationLinksToTestCases | Нет | true — обновлять связи автотестов с кейсами false (по умолчанию) — не обновлять |
| 10 | certValidation | Нет | true (по умолчанию) — проверять SSL-сертификат false — для самоподписанных сертификатов |
| 11 | importRealtime | Нет | true (по умолчанию) — отправлять каждый тест сразу после выполнения false — собрать все и отправить пакетом |
✅ Результат: В корневой папке проекта находится файл connection_config.ini, определяющий конфигурацию адаптера, включая режим его работы. 
Шаг 3: размечаем тесты с помощью декораторов
ℹ️ Декораторы передают адаптеру метаданные автотеста: название, описание, шаги, и т.д. Адаптер использует эти данные для корректного отображения результатов в Test IT. Все декораторы являются опциональными.
🛠️ Разметьте автотесты, используя декораторы из списка.
📝 Декораторы и методы (список)
| # | Декоратор | Метод | Назначение |
|---|---|---|---|
| 1 | @testit.workItemIds | testit.addWorkItemIds | Связь автогенератора с ручным кейсом. Принимает ID или список ID (строки). |
| 2 | @testit.externalId | testit.addExternalId | Уникальный ID теста. Если не указан — генерируется хеш из полного имени функции. |
| 3 | @testit.displayName | testit.addDisplayName | Понятное имя теста в системе (вместо технического имени функции). |
| 4 | with testit.step | @testit.step | Создание шагов. Вложенные вызовы создают подшаги. |
| 5 | testit.addAttachments | - | Загрузка файлов (скриншотов, логов) в результат прогона. |
| 6 | @testit.links | testit.addLinks | Ссылки на внешние ресурсы (задачи, требования). |
| 7 | @testit.labels | testit.addLabels | Метки для фильтрации в Test IT (Smoke, Regress). |
| 8 | @testit.title | testit.addTitle | Заголовок теста в карточке (по умолчанию берется из displayName). |
| 9 | @testit.description | testit.addDescription | Подробное текстовое описание теста. |
| 10 | @testit.tags | testit.addTags | Теги для дополнительной группировки. |
| 11 | @testit.nameSpace | testit.addNameSpace | Виртуальная директория в Test IT (по умолчанию — имя файла). |
| 12 | @testit.className | testit.addClassName | Поддиректория в Test IT (по умолчанию — имя класса). |
| 13 | testit.addMessage | - | Произвольное текстовое сообщение в результат теста. |
| 14 | testit.addParameter | - | Добавление параметров в результат прогона. |
⚠️ Типичные ошибки
| # | Область | Проблема | Решение |
|---|---|---|---|
| 1 | Типы данных | Декораторы workItems ожидают строку, а не число. Путь к файлу в addAttachments должен быть строкой. | Передавайте ID как строку: '26', ['26']. Приводите пути к строке: str(path). |
| 2 | Стабильность ID | Если не задать externalId, он сгенерируется автоматически. При переименовании теста ID изменится, и история прогонов прервётся (создается новый тест). | Для важных тестов задавайте externalId вручную. |
| 3 | Параметризация | Значения параметров pytest можно подставлять в названиях тестов. | Используйте {param_name} в строках декораторов (например, @testit.displayName('Test {role}')). |
| 4 | SSL-сертификаты | Ошибка SSL при подключении к Test IT Про с самоподписанным сертификатом. | Добавьте certValidation = false в файл конфигурации адаптера. |
✅ Результат: Автотесты в pytest размечены с помощью декораторов и могут корректно передавать данные в Test IT. 
Шаг 4: запускаем тесты и отправляем результаты в Test IT
ℹ️ После запуска автотестов в Test IT будут созданы карточки автотестов и прогон. Можно будет работать с автотестами из интерфейса Test IT.
🛠️ Чтобы запустить первый прогон:
- В pytest запустите автотесты при помощи флага
--testit:pytest --testit
Статусы тестов и метаданные (шаги, вложения) будут переданы в Test IT в режиме реального времени.
✅ Результат: В разделе Автотестирование → Библиотека автотестов Test IT находятся карточки с метаданными автотестов. В разделе Автотестирование → Прогоны Test IT находятся прогоны с результатами автотестов.

Дальнейшие шаги
Мы установили и настроили адаптер для pytest, подготовили тесты к загрузке в Test IT и запустили первый прогон. Теперь карточки автотестов и результаты прогона находятся в Test IT.
Далее мы можем использовать функциональность автотестов, которую предлагает Test IT: запускать автотесты из UI Test IT, настраивать автоматический перезапуск упавших автотестов, отслеживать запуски, анализировать результаты автотестов, автоматически отмечать нестабильные автотесты и многое другое.
Удачных прогонов!