Отчёт о запуске тест-плана
Отчёт о запуске тест-плана — это просмотрщик результатов одного запуска,
показывающий сводку по каждому элементу: статус, длительность, сообщение
об ошибке, трейс, метки, вложения и (для тест-кейсов) пошаговый ручной
сценарий с историей попыток.
Открыть отчёт можно для любого завершённого или выполняющегося запуска:
- UI:
Тест-планы → <план> → Запуски → <запуск> → Открыть отчёт - Прямой URL:
/ui/test-plans/<plan-id-or-numeric>/runs/<run-id>/report?namespace=<ns>
В тулбаре отчёта доступно пять вариантов экспорта. Все они формируются
без перехода со страницы и являются детерминированными — повторный экспорт
того же запуска возвращает побайтово идентичный файл, поэтому контрольная
сумма годится для аудита архива.
Варианты экспорта
Связный HTML (по умолчанию)
Кнопка: Просмотр / Скачать HTML.
Эндпоинт: GET /report.html.
Самодостаточный HTML-документ с встроенным CSS, но со ссылочными
вложениями. Картинки подгружаются по URL
(/api/v1/.../tcm/attachments/<id>/raw), поэтому файл получается компактным
и мгновенно отображается в iframe просмотрщика. Также корректно открывается
в любом браузере с сессией к серверу Mockarty.
Когда использовать:
- Делитесь отчётом внутри команды, у которой есть доступ к тому же серверу.
- Встраиваете живой отчёт в дашборды или вики того же origin.
- Нужен лёгкий файл (без увеличения размера от base64).
Ограничение: если открыть файл с диска на машине без доступа к серверу
Mockarty, все <img> окажутся битыми.
Standalone HTML (полностью автономный)
Кнопка: Скачать standalone HTML.
Эндпоинт: GET /report.html?standalone=true.
Тот же документ, но каждое вложение встроено как data: URI. Файл
полностью автономен — его можно открыть с флешки, прикрепить к письму или
загрузить в портал регулятора. Картинки рендерятся inline; не-изображения
(PDF, JSON, логи) превращаются в клик-для-скачивания ссылки с сохранением
исходного имени файла.
Защитные ограничения: каждое вложение ≤ 25 МиБ, общий размер встроенных
данных ≤ 100 МиБ. При превышении любого порога вложение заменяется
плейсхолдером #tcm-skipped-..., остальная часть отчёта рендерится
корректно.
Когда использовать:
- Долгосрочный архив.
- Аудит в air-gapped среде (регулятор, security-команда заказчика).
- Передача отчёта за пределы сессии Mockarty.
Trade-off: файл больше (base64 раздувает на 1.34×), сборка занимает
несколько секунд для запусков с большим числом вложений.
Печать в PDF (через браузер)
Кнопка: Печать в PDF.
Кнопка вызывает window.print() на iframe-отчёте. Открывается стандартный
диалог печати браузера, к которому уже применён print-friendly стиль
(светлая палитра, развёрнутые <details>, рекомендации по разрывам
страниц). Выберите “Сохранить как PDF” в списке принтеров — получите
готовый к печати архив.
Когда использовать:
- Регулятор или аудитор требует именно PDF.
- Нужна нумерация страниц и печатная вёрстка.
Поддержка браузеров: Chrome, Firefox и Safari дают визуально согласованный
результат. Edge следует рендереру Chrome. В качестве принтера выберите
“Сохранить как PDF” (Chrome / Edge), “Microsoft Print to PDF” (Windows)
или “PDF” (Preview macOS) в зависимости от платформы.
Allure ZIP
Кнопка: Скачать Allure ZIP.
Эндпоинт: GET /report.zip.
Allure-совместимый results-каталог. Скормите его Allure CLI
(allure serve report-folder/), чтобы посмотреть прогон в UI Allure —
сьюты, шаги, вложения и сайдкары categories.json / executor.json /
environment.properties.
Экспорт пишет метки framework, suite, subSuite, testClass и tag.
Метки severity, epic, feature, story и package он не пишет,
поэтому разделы Behaviors, Packages и severity в отчёте Allure останутся
пустыми. Виджетам трендов нужен собственный каталог history/ Allure,
которого в одиночном экспорте нет, — накапливайте его, направляя Allure в
один и тот же выходной каталог между прогонами.
Когда использовать:
- В CI-пайплайне уже агрегируется Allure по нескольким проектам.
- Нужны графики истории по множеству запусков.
JUnit XML
Эндпоинт: GET /report.junit.xml.
Стандартный JUnit <testsuites>. Парсится любым CI-провайдером (GitLab CI,
Jenkins, GitHub Actions, TeamCity, Azure DevOps).
Когда использовать:
- CI-дашборд ожидает JUnit (большинство ожидают).
- Нужна сводка запуска прямо в check’е pull request’а.
Unified JSON
Эндпоинт: GET /report.unified.json.
Нативный JSON-конверт Mockarty. Строго типизирован; предпочтителен для
SDK / CLI потребителей, которым нужен программный доступ без разбора
Allure-схемы.
Когда использовать:
- Кастомный downstream-тулинг (Slack-боты, внутренние дашборды и т. п.).
- Скрипт “если запуск упал — будить on-call”.
Что показывает каждый тип элемента
У каждого элемента отчёта есть статус, длительность, метки и (при падении)
текст ошибки. Кроме этого, каждый тип раскрывает собственные детали:
| Тип элемента | Детали в отчёте |
|---|---|
| Тест-кейс | Пошаговый ручной флоу с попытками, заметками и вложениями |
| Функциональный | По одному шагу на каждый запрос коллекции со статусом запроса |
| Нагрузочный | Ключевые метрики — всего запросов, задержки p50/p95/p99, запросов/сек и доля ошибок — как шаг и как параметры |
| Фаззинг | Число прогонов, уникальные аномалии и топ упавших сидов |
| Хаос | Имя эксперимента и результат |
| Контракт | Имя контракта и результат валидации |
Нагрузочные метрики также попадают в параметры, поэтому и таблица параметров
Allure, и свойства JUnit несут p95_ms, rps, error_rate и прочие — для
инструментов трендов.
Какой формат выбрать
| Цель | Формат |
|---|---|
| Живой просмотр внутри Mockarty | Связный HTML |
| Отправить аудитору одним файлом | Standalone HTML |
| Аудитору нужен бумажный PDF | Печать в PDF |
| Агрегировать в историю Allure | Allure ZIP |
| Показать в check’е PR / CI-дашборде | JUnit XML |
| Запустить автоматизацию / Slack-бота | Unified JSON |
Детерминированность и контрольные суммы
Все форматы детерминированы. Два последовательных экспорта одного запуска
дают побайтово идентичный результат. Это значит, что SHA-256 экспортного
файла подходит как дешёвое доказательство целостности — сохраните хеш
рядом с файлом в архиве, а через год повторно экспортируйте отчёт и
сравните хеши: убедитесь, что данные не подменены.
Поделиться со стейкхолдером (read-only ссылка)
Когда нужно отправить результаты заказчику или стейкхолдеру без аккаунта
Mockarty, создайте read-only ссылку. На тулбаре отчёта нажмите
Поделиться — ссылка скопируется в буфер. Любой, у кого есть ссылка,
открывает HTML-отчёт прогона; логин не требуется.
# Создать ссылку (нужна аутентифицированная сессия / токен):
curl -X POST "$MOCKARTY/api/v1/namespaces/default/test-plans/$PLAN/runs/$RUN/report/share" \
-H "Authorization: Bearer $TOKEN"
# → {"token":"…","url":"/api/v1/public/tcm-report/…","expiresAt":"2026-07-11T…Z"}
Ссылка — это stateless подписанный токен: открытие сразу рендерит отчёт, без
обращения к базе. Важно:
- Opt-in. Шаринг выключен, пока администратор не задаст переменную
окруженияMOCKARTY_REPORT_SHARE_SECRET(HMAC-ключ подписи). До этого кнопка
Поделиться сообщает, что шаринг не настроен. - Срок. По умолчанию ссылки живут 30 дней; передайте
?ttlHours=Nпри
создании, чтобы сократить. Истёкшая ссылка покажет понятное сообщение. - Отзыв. Ротация
MOCKARTY_REPORT_SHARE_SECRETмгновенно инвалидирует все
ранее созданные ссылки. - Кластер. Поскольку значение env является ключом подписи (чтобы ротация
отзывала ссылки), задайте одинаковое значение на всех нодах — иначе ссылка,
созданная на одной ноде, не откроется на другой. - Область. Ссылка даёт read-only доступ ровно к одному отчёту прогона — без
аккаунта, без записи, без данных о других прогонах.