Унифицированные запуски тестов
Mockarty хранит каждый запуск — функциональные прогоны API-коллекций,
нагрузочные тесты, фаззинг-кампании, хаос-эксперименты и проверки
контрактов — в общей ленте запусков. Этот документ описывает
список запусков, получение одного запуска и выгрузку агрегированного
отчёта в одном из шести форматов.

Эндпоинты
GET /api/v1/api-tester/test-runs?mode=<mode>&referenceId=<uuid>
GET /api/v1/api-tester/test-runs/:id
GET /api/v1/api-tester/test-runs/:id/report?format=<fmt>
Поддерживаемые режимы
| Режим | Источник |
|---|---|
functional |
Прогоны API-коллекций |
load |
Нагрузочные тесты |
fuzz |
Фаззинг-кампании (referenceId → id fuzz-конфига) |
chaos |
Хаос-эксперименты (referenceId → id эксперимента) |
contract |
Проверки контрактов (referenceId → id контракта) |
test_plan |
Прогоны Test Plan (referenceId → id плана) |
ui_test |
Одиночные прогоны UI-тестов (referenceId → id UI-теста). UI-тест, запущенный внутри Test Plan, учитывается прогоном плана и отдельно не показывается |
Унифицированный эндпоинт отчёта
GET /api/v1/api-tester/test-runs/:id/report?format=<fmt>
Единый эндпоинт, агрегирующий артефакты запуска в шесть форматов:
format |
Content type | Назначение |
|---|---|---|
allure_zip |
application/zip |
Allure CLI / Allure TestOps |
allure_json |
application/json |
Diff-тулинг, свои дашборды |
junit |
application/xml |
Jenkins, Surefire, GitLab CI |
markdown |
text/markdown |
Вставка в Slack / wiki |
unified_json |
application/json |
Нативный формат Mockarty (по умолчанию) |
html |
text/html |
Автономный HTML без внешних JS/CSS |
Комментарии к отчёту о запуске
Откройте отчёт и выберите вкладку Комментарии, чтобы обсудить результаты.
Комментарий относится к текущему пространству, типу запуска и ID запуска:
обсуждения разных типов остаются раздельными, даже если ID совпадают.
Удалённые комментарии исчезают из обсуждения и очищаются по истечении
настроенного срока хранения. Перечисленные выше форматы выгрузки не включают
комментарии.
Находки фаззинга, результаты хаос-инъекций и проверки контрактов
разворачиваются в отдельные строки AllureResult. Functional / load /
merged запуски дают одну строку-саммари.
Каждая выгрузка логируется в audit log с action
test_run_report_export — SOC-дашборды видят события
выгрузки данных.
Примеры SDK
Go
import (
"context"
"os"
mockarty "github.com/mockarty/mockarty-go"
)
client := mockarty.NewClient("http://localhost:5770", "mk_...")
data, err := client.TestRuns().GetTestRunReport(
context.Background(),
"97c1f7a6-1a2f-4d9e-8a1b-000000000001",
mockarty.TestRunReportFormatJUnit,
)
if err != nil {
panic(err)
}
_ = os.WriteFile("report.xml", data, 0o644)
Python
from mockarty import MockartyClient
from mockarty.api.testruns import TEST_RUN_REPORT_FORMAT_ALLURE_ZIP
client = MockartyClient("http://localhost:5770", api_key="mk_...")
zip_bytes = client.test_runs.get_report(
"97c1f7a6-1a2f-4d9e-8a1b-000000000001",
format=TEST_RUN_REPORT_FORMAT_ALLURE_ZIP,
)
with open("results.zip", "wb") as f:
f.write(zip_bytes)
Java
import ru.mockarty.MockartyClient;
import ru.mockarty.api.TestRunApi;
MockartyClient client = new MockartyClient("http://localhost:5770", "mk_...");
byte[] md = client.testRuns().getTestRunReport(
"97c1f7a6-1a2f-4d9e-8a1b-000000000001",
TestRunApi.TEST_RUN_REPORT_FORMAT_MARKDOWN
);
java.nio.file.Files.write(java.nio.file.Paths.get("report.md"), md);
CLI
# Все запуски
mockarty-cli test-runs list
# Фильтр по режиму
mockarty-cli test-runs list --mode fuzz
# Один запуск (JSON)
mockarty-cli test-runs get <uuid>
# Отчёт
mockarty-cli test-runs report <uuid> --format junit --output report.xml
mockarty-cli test-runs report <uuid> --format allure_zip --output results.zip
mockarty-cli test-runs report <uuid> --format markdown
MCP-инструмент
MCP-сервер предоставляет list_test_runs, get_test_run и
get_test_run_report — агенты получают доступ к фиду запусков и к
агрегированному отчёту в формате JSON без своего HTTP-клиента.
Поле format у get_test_run_report зарезервировано под будущее и сейчас
игнорируется — инструмент всегда возвращает JSON-отчёт.
Выгрузка в шести форматах доступна только через REST/CLI/SDK: вызывайте
GET /api/v1/api-tester/test-runs/:id/report?format=<fmt> напрямую, либо
методы SDK / команды mockarty-cli test-runs report, если нужен Allure,
JUnit, Markdown или HTML.
Безопасность и доступ
- RBAC: вызывающий должен быть владельцем запуска, находиться в его
namespace или иметь повышенную системную роль (admin/support). - Скоп по namespace: ответ фильтруется по namespace вызывающего
(элевированные роли — исключение). - Audit: каждая выгрузка пишет запись с action
test_run_report_exportи{format, mode}в changes.
Детерминированный вывод
Все шесть форматов дают побайтово стабильный результат — одинаковые
входы → одинаковые байты:
- отсортированные labels, parameters, attachments в AllureResult;
- метки времени с миллисекундной точностью;
- фиксированный порядок и mtime элементов zip.
Это позволяет CI хранить контрольные суммы отчётов для retry-кэша.