Тема
Отправка результатов автотестов
Автотесты выполняются в вашей инфраструктуре — в CI/CD или локально, а в DoQA отправляются их результаты. Эта страница — о способах доставить готовые результаты: файл отчёта через интерфейс, утилита doqa-cli и report-API. Из результатов DoQA создаёт прогон или дополняет существующий.
Выбор способа
| Способ | Когда подходит |
|---|---|
| Загрузка отчёта в интерфейсе | разовая загрузка готового файла отчёта, например после локального прогона |
| doqa-cli watch | пайплайн CI без адаптера: утилита запускает тесты и отправляет результаты пофайлово |
| doqa-cli report | отчёт уже собран — отправить одной командой из CI или с локальной машины |
| report-API | то же, что report, но прямым HTTP-запросом, без утилиты |
| Адаптер тестового фреймворка | результаты в реальном времени, с шагами, вложениями и привязкой к кейсам — без файлов отчётов |
| Autotest API | собственный адаптер, когда готового под ваш фреймворк нет |
Поддерживаемые форматы отчётов
- JUnit XML — файл
.xmlили.zip-архив с XML-файлами. Внутри архива обрабатываются только файлы*.xml; архив без единого валидного XML отклоняется. - Allure —
.zip-архив с сырыми данными: каталог результатов с файлами*-result.json. Файлы*-container.jsonв том же каталоге добавляют фикстуры (setup и teardown). Каталог может называтьсяresults(так пишут адаптеры DoQA) илиallure-results(стандартное имя Allure) — принимаются оба.
Размер одного файла при любом способе загрузки — не больше 50 МБ.
Сырые данные, а не готовый отчёт
DoQA обрабатывает только сырые данные Allure — папку с *-result.json и другими файлами, которую формирует тестовый фреймворк. HTML-отчёт, собранный командой allure generate, не принимается. Достаточно упаковать папку результатов в .zip-архив, дополнительные действия с данными не требуются.
Форматы не равнозначны. Allure богаче: шаги и фикстуры со статусами и длительностью, параметры, вложения (скриншоты, видео, логи), реальное время старта и окончания. JUnit XML несёт только базовый результат: статус, длительность, ошибку и вывод теста.
Файл вложения больше 100 МБ не сохраняется: результат теста обрабатывается как обычно, но этого файла в карточке результата не будет. Предупреждение о таком файле попадает только в серверные логи; лимит настраивает администратор сервера.
Метки DoQA в отчёте
Через метки в отчёте автотест сообщает о себе дополнительные данные. В Allure это метки (labels), в JUnit XML — элементы <property> внутри <properties>; имена регистронезависимы.
| Метка / property | Что задает |
|---|---|
as_id (синоним allure_id) | привязка к одному тест-кейсу — способ совместимости, см. Переезд с Allure |
doqa_id | внешний ID автотеста |
doqa_cases | привязка к нескольким тест-кейсам — список ID через запятую |
doqa_title | заголовок автотеста в каталоге |
package | группировка автотеста (namespace) |
testClass (синоним suite) | класс автотеста |
Остальные пары имя-значение попадают в свойства результата. Что означают внешний ID и привязка к тест-кейсам — Автотесты.
Загрузка отчёта через интерфейс
На вкладке «Прогоны» нажмите «Новый прогон» — откроется диалог «Создать прогон». В поле «Способ создания» выберите «Загрузка отчета», укажите «Тип отчета» (JUnit или Allure) и приложите файл. Прогону можно сразу задать название, описание и теги.

DoQA создаёт прогон с результатами из отчёта. Подробнее о полях диалога — Создание прогона на основе отчёта о результатах автотестов.
Отправка отчёта из CI через doqa-cli
Утилита командной строки doqa-cli отправляет результаты без открытия браузера. Она подходит и для локальных запусков, и для встраивания в пайплайн CI/CD (GitLab, Jenkins и др.). Результат тот же, что и при загрузке через интерфейс: в системе появляется прогон с результатами.
Скачивание doqa-cli
Переменные окружения
Создайте переменные в настройках вашего CI/CD (например, Settings > CI/CD > Variables в GitLab или Actions Secrets в GitHub). Для токена используйте режим маскирования (Masked).
DOQA_ENDPOINT— адрес вашего экземпляра DoQA, напримерhttps://company.doqa.app.DOQA_TOKEN— API-токен DoQA, см. Создание API-токена.DOQA_SPACE_ID— ID пространства, см. Как узнать ID пространства.
Чтобы связать запуск в CI с пайплайном в DoQA, передайте в конфигурации пайплайна:
| Переменная | Значение (для GitLab CI) | Описание |
|---|---|---|
| DOQA_PIPELINE_ID | $CI_PIPELINE_ID | Уникальный ID текущего запуска. Для команды watch обязательна |
| CI_PROJECT_ID | $CI_PROJECT_ID | ID проекта в вашей CI-системе |
| CI_BRANCH | $CI_COMMIT_REF_NAME | Название ветки, в которой запущен тест |
Переменные окружения читает команда watch; команде report все значения передаются аргументами.
Если пайплайн запускает DoQA
DOQA_SPACE_ID заводить вручную нужно только для сценария «пайплайн стартует сам» — по коммиту или расписанию. Когда пайплайн запускает DoQA, она передаёт DOQA_SPACE_ID в переменные пайплайна сама, и значение из DoQA перекрывает то, что задано в настройках CI.
Команда watch
watch запускает вашу тестовую команду, а после её завершения отправляет результаты в DoQA пофайлово: каждый результат уходит отдельным запросом, и прогон наполняется, не дожидаясь конца пайплайна. По DOQA_PIPELINE_ID утилита получает у DoQA прогон для этого пайплайна: если пайплайн запущен из DoQA — существующий (тогда watch сам запрашивает и применяет тест-план, см. Запуск автотестов из DoQA), если пайплайн стартовал сам — новый.
bash
./doqa-cli watch -- [команда запуска ваших тестов]Всё, что идёт после двойного тире (--), воспринимается утилитой как исходная команда для запуска тестов.
Пример этапа тестирования в .gitlab-ci.yml для Maven со стандартным выводом результатов в директорию allure-results:
yaml
test_ui:
stage: test
before_script:
# 1. Скачиваем актуальную версию утилиты
- curl -fsSL https://doqa.app/downloads/doqa-cli -o doqa-cli
# 2. Даем права на выполнение
- chmod +x doqa-cli
script:
# 3. Запускаем тесты через watch
- ./doqa-cli watch -- mvn -B -Dallure.results.directory=allure-results test
artifacts:
when: always
paths:
- allure-results
- target/surefire-reports/junitreports/
reports:
junit:
- target/surefire-reports/junitreports/TEST-*.xml
expire_in: 1 weekЧто учесть:
- двойное тире (
--) — обязательный разделитель: он указывает утилите, что настройки самой doqa-cli закончились и дальше начинается ваша команда; - если тесты упадут, watch передаст код выхода обратно в CI/CD, и пайплайн пометится как «failed»;
- watch не отменяет сохранение артефактов в самом CI/CD (секция
artifacts) — логи и тяжёлые скриншоты остаются в вашей инфраструктуре; - результаты ищутся в каталогах
allure-resultsиtarget/allure-results; другой корень поиска задаётся флагом--results-dir; - если фреймворк формирует отчёты сразу в двух форматах, JUnit XML и Allure, doqa-cli использует Allure; принудительно выбрать формат можно флагом
--report-type allureили--report-type junit.
Команда report
report загружает уже готовый файл или архив с результатами, когда выполнение всех тестов завершено. Используйте её, если отслеживание в реальном времени не нужно или инфраструктура не позволяет применять watch.
bash
./doqa-cli report [url] [spaceId] [token] [file] [type] [runName]url— полный адрес API вашего экземпляра. Рекомендуется использовать$DOQA_ENDPOINT/api/autotests/report.spaceId— ID пространства, см. Как узнать ID пространства.token— API-токен DoQA, см. Создание API-токена.file— путь к файлу отчёта (XML-файл JUnit или ZIP-архив с результатами Allure; одиночный XML утилита заархивирует сама).type— формат отчёта:junitилиallure. Необязателен: без него тип определяется по содержимому файла.runName— необязательное название прогона. Без него прогон получит название «Прогон из локального запуска автотестов».
Пример для JUnit XML:
bash
doqa-cli report https://example.doqa.app/api/autotests/report 2 abc123 /path/to/junit.xml junitПример для Allure:
bash
doqa-cli report https://example.doqa.app/api/autotests/report 2 abc123 /path/to/allure-report.zip allureПример шага в .gitlab-ci.yml:
yaml
test_ui:
stage: test
script:
# 1. Запуск тестов (генерация allure-results)
- mvn test -Dallure.results.directory=allure-results
after_script:
# 2. Установка необходимых утилит (zip и curl)
- apt-get update && apt-get install -y zip curl
# 3. Скачивание doqa-cli
- curl -fsSL https://doqa.app/downloads/doqa-cli -o doqa-cli
- chmod +x doqa-cli
# 4. Упаковка результатов в архив
- zip -r allure-results.zip allure-results
# 5. Отправка отчёта в DoQA
- ./doqa-cli report "$DOQA_ENDPOINT/api/autotests/report" "$DOQA_SPACE_ID" "$DOQA_TOKEN" "allure-results.zip" allure
artifacts:
when: always
paths:
- allure-results/
- allure-results.zip
expire_in: 1 weekЗагрузка результатов через API
Воспользуйтесь методом POST /api/autotests/report. Логин и пароль для него не нужны: метод авторизуется API-токеном проекта.
- Укажите API-токен проекта в поле «token» (цифра 1).
- Выберите формат отчёта — JUnit XML или Allure (цифра 2).
- Выберите файл (цифра 3).
- При необходимости введите имя прогона (цифра 4).
- Укажите ID пространства DoQA (цифра 5).
- Подтвердите отправку запроса.

DoQA загружает отчёт и показывает его новым прогоном. Если дополнительно передать поле pipelineId с ID пайплайна, запущенного из DoQA, результаты попадут в прогон этого запуска, а не в новый. Об остальных методах и о доступе к Swagger — Публичный API.
Не путайте этот метод с POST /api/autotests/results: тот принимает не файл отчёта, а отдельные результаты от адаптеров — см. Autotest API.
Создание API-токена
Перейдите в настройки администратора, раздел «Проекты». Выберите проект из списка и откройте вкладку «API-токены». Создайте токен — им можно загружать отчёты об автотестах в любое пространство этого проекта.

Как узнать ID пространства
Откройте нужное пространство в браузере. В адресе страницы .../detail/1/2/cases второе число (2) — это ID пространства.
Смотрите также
- Автотесты — внешний ID, пути доставки результатов, связь с тест-кейсами
- Адаптеры для тестовых фреймворков — отправка результатов в реальном времени без файлов отчётов
- Autotest API — прямое API для собственного адаптера
- Прогоны — куда попадают результаты автотестов
- Публичный API — Swagger и остальные методы API