Runtime-вид прогона
Runtime Flow View (runtime-вид прогона) — это живая картинка выполнения
тест-кейса. Он открывается, когда вы запускаете прогон со страницы кейса,
открываете запись из истории прогонов или проваливаетесь в элемент
test_case на прогоне Test Plan. Это один и тот же вид,
независимо от того, прогон закончился секунду назад или две недели назад —
разница только в том, обновляется ли он перед вами в реальном времени.
Об URL в примерах: все примеры используют
localhost:5770как адрес
Mockarty по умолчанию. Если экземпляр работает на удалённом сервере,
заменитеlocalhost:5770на его реальный адрес.
Связанные страницы: Шаги тест-кейсов ·
Управление тест-кейсами ·
Модал пошагового прогона ·
Тест-планы
Что вы видите
Вид представляет собой вертикальное дерево карточек — по одной на шаг — с
шапкой кейса наверху и панелью окружения справа.
Кейс: Login regression RUNNING · started 14:22:08
├── 1 REQUEST Login PASS 300мс ▸ развернуть
├── 2 REQUEST Fetch profile RUN … ▸ развернуть
│ waiting on: Login
└── 3 MANUAL Verify welcome email PENDING
Кликните по карточке — она раскроется и покажет всё, что сделал шаг:
резолвленный запрос, ответ, извлечённые значения и (для ручных шагов) —
вердикт и комментарий.
[Runtime-вид прогона — полный обзор — screenshot pending]
Как читать дерево потока
Чипы статусов
Цвет и текст на каждой карточке шага — это live-статус:
| Чип | Что означает |
|---|---|
| PENDING (серый) | Шаг ещё не стартовал. |
| WAITING (жёлтый) | Upstream-шаг, указанный в dependsOn, ещё не завершился. В теле карточки видно, кого ждёт. |
| RUNNING (синий) | Запрос в полёте либо открыт модал пошагового прогона для ручного шага. |
| PASS (зелёный) | Все ожидания выполнены, извлечения применены. |
| FAIL (красный) | Ожидание упало, извлечение не сработало или запрос ошибся. В теле — детали. |
| SKIPPED (серый) | Упала зависимость, раннер бросил ветку. В теле указан upstream-шаг, из-за которого. |
| AWAITING MANUAL (фиолетовый) | Автоматический шаг встал на паузу для вердикта (например, в debug-прогоне) или ручной шаг ждёт ввода. |
Микро-чипы внутри карточки
Маленькие чипы в шапке карточки показывают, что произошло при разрешении
привязок до отправки запроса:
- Значок ключа и имя — окружение, привязанное к шагу. Разверните карточку,
чтобы увидеть его имя и остальные детали привязки. Для старых событий
без сохранённого имени отображается общая подпись «Окружение». - Число с буквой o рядом со значком настроек (например, 2o) —
число активных переопределений шага. - Число с буквой s рядом со значком замка (например, 1s) —
число разрешённых ссылок на секреты.
Значения секретов в этом разделе не показываются.
Тело карточки
- Request (запрос) — полностью резолвленные URL, метод, заголовки,
тело. Все{{plan.X}},{{env.X}}, переопределения и секреты подставлены,
и вы видите ровно то, что ушло в провод. Секреты отображаются как***
с тултипом «from secret store: <алиас>». - Response (ответ) — статус, заголовки, тело, длительность. Если тело
больше лимита отображения, показывается ссылка «view raw», скачивающая
полную нагрузку. - Extracted (извлечённые значения) — все значения, которые правила
Extract шага записали в контекст прогона. У каждой строки — тип правила,
поле from и результирующее значениеplan.<key>. Эти значения
используют downstream-шаги. - Expectations (ожидания) — разбор pass/fail для каждого ассерта,
определённого в привязанном запросе. Красная строка точно говорит, какое
ожидание сломалось. - Attempts (попытки) — для шагов с ретраем (например, в retry-политике)
— по одной сворачиваемой строке на попытку, у каждой свой запрос/ответ/вердикт.
Что на самом деле значит жёлтый чип «waiting»
Шаг в состоянии WAITING удерживается своим dependsOn. В теле карточки
ровно одна строка: waiting on: <имя upstream-шага>. Как только upstream
переключается в PASS, жёлтый чип становится синим, и шаг стартует. Если
upstream переключается в FAIL, ожидающий шаг становится серым SKIPPED
с причиной dependency failed: <upstream>.
Ждущий шаг не зависший и не сломан — это раннер честно показывает порядок
параллельного исполнения.
Снимок окружения
В правой панели runtime-вида живёт снимок окружения на весь прогон. Это
резолвленное окружение, зафиксированное в момент старта прогона и замороженное
на всё его время.
В нём перечислены:
- имя привязанного окружения (или общая подпись для старых прогонов);
- все переменные, которые окружение определяло на момент старта прогона,
с их значениями; - все алиасы секретов, которые использовал прогон. Значения секретов
в снимке не хранятся.
Панель показывает значения, сохранённые при старте прогона. Последующее
редактирование окружения не меняет этот снимок.
Снимок — источник истины для «какое окружение реально использовал прогон».
Через две недели, когда вы будете гадать, почему старый прогон ушёл в
api.staging-eu.example.com вместо текущего api.staging.example.com, в
панели снимка увидите ровно это.
Live-обновления — что означает каждое событие
Runtime-вид подписывается на live-поток событий с сервера. События приходят
естественно, обновлять страницу не нужно.
| Что видите на экране | Что только что произошло |
|---|---|
| Шапка кейса переключилась с серой PENDING на синюю RUNNING. | Раннер принял кейс и стартовал первую волну шагов. |
| Карточка шага сменила жёлтый WAITING на синий RUNNING. | Upstream-зависимость только что прошла; стартовал резолв этого шага. |
| В развёрнутой карточке сверху появились три чипа (env / overrides / secrets). | Привязки шага — окружение, переопределения, секреты — резолвлены. Сейчас будет собран сетевой запрос. |
| Карточка перескочила в PASS или FAIL с длительностью. | Запрос завершён, извлечения (если есть) применены. |
| Под Extracted появились зелёные строки plan.X = … . | Шаг собрал значения для downstream-шагов. |
| Появился фиолетовый чип AWAITING MANUAL с панелью «Continue / Stop». | Прогон на паузе — либо это debug-прогон, либо ручной шаг ждёт вердикта. |
| Шапка кейса стала зелёной PASSED или красной FAILED. | Все шаги завершились. Прогон финален. |
Если соединение оборвётся, вид молча переподключится. После переподключения
он пересинхронизируется со снимком сервера, поэтому состояние не теряется —
вы максимум пропускаете анимацию промежуточного перехода.
Управление пошаговой отладкой
Когда прогон стартовал в debug-режиме (см.
Шаги тест-кейсов §8),
runtime-вид показывает закреплённую панель внизу после каждого шага:
- Continue — отпускает паузу и запускает следующий шаг (или следующий
слой параллельных шагов). - Continue & edit — открывает редактор, в котором перед возобновлением
можно подправить значения plan-контекста, переопределения следующего шага
или его тело запроса. Изменение пишется в историю прогона, чтобы след того,
что вы делали, остался. - Stop — отменяет прогон. Завершённые шаги сохраняют результат, прогон
заканчивается со статусомcancelled.
Те же кнопки доступны и в обычном прогоне, если в меню нажать Pause —
прогон встанет на ближайшей границе шага, и панель появится.
Шеринг и экспорт завершённого прогона
У каждого прогона есть постоянный URL вида:
https://mockarty.example.com/ui/test-cases/runs/<run-id>
Отправьте ссылку любому, у кого есть права на чтение в пространстве имён, и он
увидит тот же вид, полностью восстановленный из данных сервера. Никакого
«снимка на момент шеринга» нет — ссылка всегда показывает финальное
состояние прогона (или live-состояние, если поделились до завершения).
В шапке есть kebab-меню с тремя действиями экспорта:
- Copy link — копирует постоянный URL.
- Export run (JSON) — скачивает JSON-дамп с каждым шагом: запросом,
ответом, извлечёнными значениями, снимком окружения и таймингами.
Используйте для офлайн-отчётов или для прокачки в downstream-инструменты. - Open Allure report — видно только если прогон кейса был запущен в
составе Test Plan. Открывает общий Allure-отчёт плана
с глубокой ссылкой на шаги этого кейса.
Права и изоляция пространств имён
- Чтение runtime-вида (снимок + live-обновления) требует
test_case:readв
пространстве имён, которому принадлежит кейс. - Управление кнопками Continue / Stop требует
test_case:write. - Кросс-пространство имён доступа нет — пользователь с правами в
acmeне увидит
прогон изglobex, даже имея постоянный URL. - Секреты, показываемые как
***, никогда не пишутся в историю прогона,
JSON-экспорт или аудит-лог. В аудит-логе записаны только имена алиасов и
источники хранилищ.
Дальше: Шаги тест-кейсов — это how-to по
сборке кейсов, которые вы будете смотреть здесь.
Модал пошагового прогона подробно описывает
ручной вердикт-flow.