Тема
Адаптеры для тестовых фреймворков
Адаптер — библиотека, которую вы подключаете в тестовый проект. Во время прогона она отправляет результаты в DoQA через Autotest API прямо из тестового процесса, в реальном времени по ходу выполнения или одной порцией в конце. Результаты приходят структурными: с шагами, фикстурами, вложениями, метками и привязкой к тест-кейсам, без файлов отчётов и ручной выгрузки.
Адаптер или отправка отчётов
Адаптер — рекомендуемый способ: глубокая интеграция с наименьшими усилиями на поддержку. Если адаптера под ваш фреймворк нет, DoQA всё равно примет результаты, файлами отчётов JUnit XML или Allure: через интерфейс, утилитой doqactl или запросом к report-API. Эти способы описаны на странице Отправка результатов автотестов. Чем это отличается от адаптера:
| Возможность | Файлы отчётов (интерфейс, doqactl, report-API) | Адаптер |
|---|---|---|
| Фреймворки | любой, умеющий писать JUnit XML или Allure | только поддерживаемые платформы (см. ниже) |
| Шаги и фикстуры | только из Allure-результатов; JUnit XML шагов не содержит | да: декларативные и программные шаги, фикстуры вплоть до @BeforeAll/@AfterAll |
| Вложения | из Allure-архива | да: файлы и контент из памяти, прямо из кода теста |
| Внешний ID без правки кода | нет: ID задаётся меткой или свойством в артефакте отчёта | да: выводится автоматически, вплоть до хэша сигнатуры теста |
| Привязка к тест-кейсам | метки и свойства в артефакте отчёта | аннотации и вызовы в коде теста |
| Результаты в реальном времени | только через doqactl watch | да: отправка в реальном времени по ходу прогона |
| Запуск выбранных автотестов из DoQA | частично: через нативный фильтр или тест-план, фильтрацию выполнения настраивает пайплайн (doqactl watch применяет тест-план сам) | да: селективный режим из коробки — исполняются только тесты из плана прогона |
Оба пути сосуществуют. Отчёты — универсальный способ, который работает без правок тестового проекта; адаптер добавляет структуру результата, стабильную идентичность автотеста и селективные запуски.
Поддерживаемые платформы
| Платформа | Фреймворк | Библиотека |
|---|---|---|
| JVM (Java, Kotlin) | JUnit 5 (Jupiter) | app.doqa:doqa-junit5, Maven Central |
| JVM (Java, Kotlin) | JUnit 4 (4.13+) | app.doqa:doqa-junit4, Maven Central |
| JVM (Java, Kotlin) | TestNG (7.4+) | app.doqa:doqa-testng, Maven Central |
| Python | pytest | doqa-pytest, PyPI |
Руководства по подключению и настройке: Адаптер JUnit 5, Адаптер JUnit 4, Адаптер TestNG, Адаптер pytest. Если проект уже размечен Allure-аннотациями, см. Переезд с Allure: всё подхватывается без правок кода.
Если адаптера под ваш фреймворк нет:
- отправляйте готовые отчёты JUnit XML или Allure: все способы работают с любым фреймворком, который умеет писать эти форматы;
- напишите собственный адаптер поверх Autotest API, прямого API, через которое работают и готовые адаптеры;
- напишите в поддержку support@doqa.app: запросы на новые адаптеры принимаются.
Общие понятия
Пользовательские интерфейсы адаптеров устроены одинаково; ниже — понятия, общие для всех. Конкретные ключи, аннотации и примеры — на странице адаптера.
Конфигурация подключения
Адаптеру нужны три параметра: адрес DoQA, API-токен и ID пространства. Токен обычно задаётся переменной окружения в CI, а не в файле в репозитории. Как создать токен и узнать ID пространства — в разделах «Создание API-токена» и «Как узнать ID пространства».
Внешний ID
Каждый автотест идентифицируется в DoQA внешним ID, стабильным ключом, который не зависит от имени теста. Адаптер либо берёт его из явной аннотации в коде (в JVM — @DoqaId), либо выводит автоматически. Как внешний ID работает на стороне DoQA — на странице Автотесты.
Режим работы и прогон
Адаптер решает, в какой прогон записывать результаты:
- создать новый — режим по умолчанию: адаптер сам создаёт прогон и наполняет его;
- писать в существующий — прогон создан заранее в интерфейсе или через API, адаптеру передаётся его ID;
- селективный — адаптер запрашивает у DoQA список автотестов, которые числятся в прогоне, и исполняет только их.
Селективный режим использует сам DoQA: при запуске автотестов из интерфейса пайплайну передаётся ID прогона, и адаптер прогоняет ровно выбранные тесты.
Смотрите также
- Каталог автотестов — куда попадают присланные адаптером автотесты
- Результаты и разбор падений — как выглядят шаги, вложения и ошибки в прогоне
- Первый прогон автотестов — сценарий первой интеграции с DoQA