Артефакты и отчеты¶
Уровни доказательств¶
QA Hub собирает доказательства на трех уровнях:
- Case result — итог и фактическое описание.
- Job events/result — структурированный след автоматической проверки.
- Artifact — файл с исходными данными.
Для расследования ошибки обычно нужны все три: краткий вывод, машинные события и первичный лог.
Как именовать артефакты¶
Имя должно объяснять содержимое без открытия:
chrome-console-client-228800010.log
webrtc-internals-audio-publish.json
stage1-server-2026-07-23T101500Z.log
SMK-04-mic-reenable.mp4
http-diagnostics.json
Не используйте log.txt, screen.png или file.json, если в прогоне будет
несколько таких файлов.
Что загружать при media-баге¶
- client diagnostics JSON с
client_id,device_id, track state и RTC stats; - browser console от входа в конференцию до воспроизведения;
- server log за тот же временной диапазон;
- краткое видео UI;
- сеть, браузер, ОС и версия build в фактическом результате.
Финальный отчет¶
Отчет считается финальным только при наличии finalized_at. До финализации
автоматический вердикт является черновиком.
Markdown¶
Подходит для задачи, письма и релизного протокола. Включает метаданные, таблицу кейсов, фактические результаты и список артефактов.
GET /api/v1/runs/<run_id>/report?format=markdown
JUnit XML¶
Подходит для импорта в CI:
GET /api/v1/runs/<run_id>/report?format=junit
failed становится <failure>, незавершенные и пропущенные кейсы —
<skipped>.
JSON¶
Полный формат для аналитики и внешних инструментов:
GET /api/v1/runs/<run_id>/report?format=json
Он содержит run, cases, step results, jobs и метаданные artifacts.
Получение отчета из CI¶
QA_TOKEN="$(
curl -fsS https://qa.videograce.ru/api/v1/auth/token \
-H 'Content-Type: application/json' \
-d '{"username":"ci-reader","password":"..."}' |
python3 -c 'import json,sys; print(json.load(sys.stdin)["token"])'
)"
curl -fsS \
"https://qa.videograce.ru/api/v1/runs/$RUN_ID/report?format=junit" \
-H "Authorization: Bearer $QA_TOKEN" \
-o qa-report.xml
Для CI создавайте отдельного пользователя с минимальной ролью viewer.
Retention¶
Автоматического удаления artifacts в текущей версии нет. Перед введением retention необходимо определить:
- срок хранения финальных проваленных прогонов;
- срок хранения успешных smoke;
- требования к персональным данным;
- исключения для инцидентов и приемочных испытаний;
- политику удаления файлов и строк metadata как одной операции.
До появления штатной политики не удаляйте файлы напрямую из artifact storage: в отчетах останутся битые ссылки.