Автотесты
В релизе DoQA 4.0 мы превратили систему в единый центр управления качеством: теперь результаты ваших автоматизированных проверок, ручные тест-кейсы и пайплайны CI/CD работают в единой связке.
Основные возможности:
Гибкий импорт: Загружайте отчеты (JUnit XML, Allure) вручную через интерфейс приложения или через консольную утилиту doqa-cli.
Синхронизация: Автоматически связывайте автотесты с ручными кейсами через Allure ID.
Интеграция с CI/CD через консольную утилиту: Встраивайте отправку результатов прямо в ваши пайплайны.
Управление из интерфейса: Запускайте связанные автотесты и пайплайны GitLab прямо из TMS и отслеживайте результаты в реальном времени.
Автотесты регистрируются в DoQA при загрузке отчетов любым из вышеперечисленных способов. При этом, регистрируются только автотесты с уникальными именами, которые ранее не были загружены в систему. Добавить автотест в систему "вручную" нельзя.
При смене имени тестового метода в репозитории, для DoQA он будет уже новым автотестом.
В дальнейшем мы реализуем раздел, в котором по каждому автотесту с уникальным именем можно будет увидеть статистику его прохождения в разных прогонах.
Содержание:
Загрузка результатов автотестов через интерфейс
Использование CLI для локальной отправки результатов автотестов
Использование CLI в CI/CD пайплайнах
Связывание автотестов с тест-кейсами
Настройка интеграции с GitLab CI/CD
Запуск автотестов из плеера прогонов
Загрузка результатов автотестов через API
Создание API токена для загрузки результатов автотестов в DoQA
Загрузка результатов автотестов через интерфейс
Если у вас есть готовый артефакт с результатами автотестов, вы можете импортировать его напрямую.
Поддерживаемые форматы:
- JUnit XML (одиночные файлы или архив с несколькими файлами),
- Allure (сырые данные в json-формате, помещенные в архив).
Как это работает: Вы выбираете файл, и система автоматически создает на его основе новый прогон.
Что внутри: В созданном прогоне вы можете анализировать ошибки, оставлять комментарии к автотестам, заводить баги в трекере или принимать решение о ручном перепрохождении конкретных тестов.

Использование CLI для локальной отправки результатов автотестов
Утилита командной строки doqa-cli позволяет отправлять результаты без открытия браузера. Это удобно, если вы запускаете тесты локально в IDE или на удаленном сервере.
Поддерживаемые форматы:
- JUnit XML (одиночные файлы или архив с несколькими файлами),
- Allure (сырые данные в json-формате, помещенные в архив).
Механика: Утилита упаковывает результаты и отправляет их в API TMS.
Результат: Аналогично ручной загрузке, в системе создается новый прогон со всеми деталями выполнения.
Скачивание doqa-cli
Использование doqa-cli
Для отправки отчета используйте следующую команду:
doqa-cli report [url + /api/autotests/report] [spaceId] [token] [file] [type]
doqa-cli: имя утилиты.report: команда для загрузки результатов прогона автотестов.[url]: URL-адрес сервера для отправки отчета.[spaceId]: ID пространства в DoQA.- Как узнать ID пространства: Откройте нужное пространство в браузере. В адресе страницы
.../detail/1/2/casesвторое число (2) — это ID пространства.
- Как узнать ID пространства: Откройте нужное пространство в браузере. В адресе страницы
[token]: API-токен DoQA для доступа к серверу. Токен создается на уровне проекта DoQA и позволяет загружать отчеты в любое пространство внутри данного проекта. Подробнее о создании токена[file]: Путь к файлу, содержащему отчет.[type]: Формат отчета. Используйте значение "allure" или "junit"
Пример команды для загрузки отчета формата JUnit XML
doqa-cli report https://example.doqa.app/api/autotests/report 2 abc123 /path/to/junit.xml junit
Эта команда отправит отчет на https://example.doqa.app/api/autotests/report в пространство с ID=2 с использованием токена abc123, используя данные из файла /path/to/junit.xml.
Пример команды для загрузки отчета формата Allure
doqa-cli report https://example.doqa.app/api/autotests/report 2 abc123 /path/to/allure-report.zip allure
Эта команда отправит отчет на https://example.doqa.app/api/autotests/report в пространство с ID=2 с использованием токена abc123, используя данные из архива /path/to/allure-report.zip.
Примечание
До версии DoQA 4.0 загрузка результатов автотестов осуществлялась в формате отчета, сформированного командой allure-report. Начиная с версии 4.0 процесс подготовки артефакта для загрузки в TMS стал проще. Теперь DoQA обрабатывает только сырые данные Allure (сформированная тестовым фреймворком папка, содержащая result.json и другие файлы). Достаточно поместить папку с сырыми данными в .zip архив, дополнительные действия с данными не требуются.
Использование CLI в CI/CD пайплайнах
Автоматизируйте отправку отчетов об автотестах в DoQA, установив doqa-cli в ваш инструмент CI/CD (GitLab, Jenkins и др.).
Скачивание doqa-cli:
Настройка CI/CD
Для работы утилиты doqa-cli необходимо настроить передачу данных между вашей CI-системой и DoQA.
1. Переменные окружения (Secrets)
Создайте следующие переменные в настройках вашего CI/CD (например, Settings > CI/CD > Variables в GitLab или Actions Secrets в GitHub). Рекомендуется использовать режим маскирования (Masked) для токена.
DOQA_ENDPOINT — адрес вашего экземпляра DoQA.
- Пример: https://company.doqa.app
DOQA_TOKEN - API-токен DoQA. Инструкция по созданию токена
DOQA_SPACE_ID - идентификатор пространства внутри проекта.
- Как узнать ID пространства: Откройте нужное пространство в браузере. В адресе страницы
.../detail/1/2/casesвторое число (2) — это ID пространства.
- Как узнать ID пространства: Откройте нужное пространство в браузере. В адресе страницы
2. Конфигурация пайплайна
Добавьте в конфигурационный файл вашего репозитория (например, .gitlab-ci.yml, Jenkinsfile или .github/workflows/*.yml) следующие переменные. Это свяжет запуск в CI с конкретным пайплайном в DoQA:
| Переменная | Значение (для GitLab CI) | Описание |
|---|---|---|
| DOQA_PIPELINE_ID | $CI_PIPELINE_ID | Уникальный ID текущего запуска |
| CI_PROJECT_ID | $CI_PROJECT_ID | ID проекта в вашей CI-системе |
| CI_BRANCH | $CI_COMMIT_REF_NAME | Название ветки, в которой запущен тест |
Команда watch
Команда watch предназначена для автоматического отслеживания процесса тестирования. Она запускает вашу тестовую команду, перехватывает результаты (например, отчеты JUnit или Allure) и мгновенно передает их в DoQA.
Как это работает:
Вместо того чтобы сначала прогнать все тесты, а потом отдельной командой загружать архив с результатами, вы оборачиваете запуск тестов в watch.
Синтаксис:
./doqa-cli watch -- [команда запуска ваших тестов]
Всё, что идет после двойного тире (--), воспринимается утилитой как исходная команда для запуска тестов.
Пример настройки для Java (Maven) Ниже приведен пример конфигурации этапа тестирования в файле .gitlab-ci.yml. В этом сценарии мы используем Maven и стандартный вывод результатов в директорию allure-results.
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 закончились и дальше начинается ваша привычная команда (в примере: mvn ... test).
Потоковая передача: как только очередной автотест завершается и файл с результатом появляется в файловой системе, watch обнаруживает его и отправляет в DoQA. В интерфейсе системы вы увидите прогресс в реальном времени.
Обработка ошибок: если ваши тесты упадут с ошибкой, watch корректно завершит работу и передаст код выхода (exit code) обратно в CI/CD, чтобы пайплайн пометился как «failed».
Артефакты: использование watch не отменяет необходимость сохранения артефактов в самом CI/CD (секция artifacts). Это полезно для хранения логов и тяжелых скриншотов внутри вашей инфраструктуры.
Формат отчета: если ваш фреймворк формирует отчеты сразу в двух форматах Junit XML и Allure, то по умолчанию doqa-cli будет использовать Allure.
Совет: Убедитесь, что ваш тестовый фреймворк (TestNG или JUnit) настроен на генерацию отчетов в процессе выполнения, а не только в самом конце. Это обеспечит максимальную плавность отображения прогресса в DoQA.
Команда report
Команда report используется в тех случаях, когда вам не требуется отслеживание тестов в реальном времени, или если ваша инфраструктура накладывает ограничения на использование watch. Она загружает уже готовый сформированный архив или файл с результатами после того, как выполнение всех тестов полностью завершено.
Использование команды:
В отличие от watch, команда report запускается как отдельный шаг после выполнения тестов. Она берет готовый отчет и в один присест отправляет его в DoQA.
Синтаксис:
./doqa-cli report [url] [spaceId] [token] [file] [type]
Описание аргументов:
url: Полный адрес API вашего экземпляра (например,https://example.doqa.app/api/autotests/report)). Рекомендуется использовать переменную$DOQA_ENDPOINT/api/autotests/report.spaceId: ID пространства, в которое загружаются результаты.- Как узнать ID пространства: Откройте нужное пространство в браузере. В адресе страницы
.../detail/1/2/casesвторое число (2) — это ID пространства.
- Как узнать ID пространства: Откройте нужное пространство в браузере. В адресе страницы
token: API-токен DoQA. Инструкция по созданию токенаfile: Путь к файлу отчета (XML-файл JUnit или ZIP-архив с результатами Allure).type: Формат отчета. Допустимые значения: junit или allure.
Пример настройки в .gitlab-ci.yml
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-test-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
Связывание автотестов с тест-кейсами
При загрузке в DoQA результатов автотестов любым из перечисленных способов, система сопоставит помеченные аннотацией Allure ID автотесты из отчета c ручными тест-кейсами в DoQA. Если указанный ID тест-кейса существует в данном пространстве DoQA, то будет автоматически создана связь между автотестом и тест-кейсом. Как только связь установлена, ручной тест-кейс получает признак «Статус автоматизации: автоматизирован». Это помогает понять, какие ручные тесты уже покрыты автотестами. Данную связь можно разорвать вручную, выбрав другой статус автоматизации в редакторе тест-кейса.
Примечание
Если автотест уже был связан с тест-кейсом, но в очередном отчете он получил связь через Allure ID с другим тест-кейсом, старая связь разорвется и будет создана новая.

Для того, чтобы пометить тест-кейсы, которые должны быть автоматизированы, измените их "Статус автоматизации" на "Подлежит автоматизации" через редактор тест-кейса.
Запуск автотестов из плеера прогонов
Вам не нужно заходить в GitLab, чтобы запустить связанные автотесты.
Внутри прогона можно выбрать конкретные автотесты и запустить их в CI/CD. В результате будет создан новый пайплайн, в котором запустятся только выбранные автотесты.
Если на момент запуска автотестов из прогона не было отмечено ни одного чек-бокса связанных автотестов, будут запущены все связанные автотесты из прогона.

Сиротские автотесты, не имеющие связь с ручными тест-кейсами через Allure ID, не могут быть запущены из прогона.
Загрузка результатов автотестов через API
Для работы с API необходимо получить токен авторизации. Для этого используйте логин и пароль вашей учетной записи.
Воспользуйтесь API POST /api/autotests/report.
В поле token (цифра 1) вставьте API-токен, созданный в DoQA, выберите формат Junit XML или Allure (цифра 2), выберите файл (цифра 3), опционально введите имя прогона (цифра 4) и укажите ID пространства DoQA (цифра 5), после чего подтвердите отправку запроса.

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