Ко всем шагам
API-запрос
Поля шага
{"method":"POST","url":"https://api.site.com/login","headers":{"Content-Type":"application/json"},"body":{"login":"user","password":"pass"},"save":{"slot_1":"body.access_token"},"assert":[{"path":"status","op":"=","value":"200"}]}
(text)
Выполняет HTTP-запрос прямо в сценарии — например, чтобы залогиниться по API, дёрнуть бэкенд или подготовить данные. Запрос идёт через браузер теста, поэтому cookies и сессия общие: логин по API виден странице, и наоборот. Токены/деньги AI не тратит.
Параметр — JSON с полями:
Параметр — JSON с полями:
- method — GET/POST/PUT/PATCH/DELETE;
- url — адрес (только http/https, внутренние/приватные IP заблокированы);
- headers — заголовки (объект);
- body — тело запроса (объект → уйдёт как JSON; для форм добавьте заголовок
Content-Type: application/x-www-form-urlencoded); - save — что достать из ответа в слот:
{"slot_1":"body.access_token"}. Пути:status,text,body.поле,body.items[0].id,headers.Имя; - assert — проверки ответа:
{"path":"status","op":"=","value":"200"}. Операторы:= != > < >= <= IN "NOT IN" LIKE. Если проверка не прошла — тест падает.
save), а в следующих шагах пишите rmb:slot_1 — воркер подставит значение. Например, в этом же шаге в headers: {"Authorization":"Bearer rmb:slot_1"}, или отдайте токен браузеру шагом «Установить заголовки» (Authorization: Bearer rmb:slot_1). Подробный разбор — в статье-кейсе про авторизацию и выгрузку списка по API.Пример использования
Выполнить HTTP-запрос прямо в сценарии. Запрос идёт через браузер теста — cookies и сессия общие с обычными шагами. Параметр — JSON. AI-токены/деньги шаг не тратит.
Простой GET и проверка ответа:
{
"method": "GET",
"url": "https://api.site.com/health",
"assert": [ { "path": "status", "op": "=", "value": "200" } ]
}
POST с телом (тело-объект уходит как JSON):
{
"method": "POST",
"url": "https://api.site.com/login",
"headers": { "Content-Type": "application/json" },
"body": { "login": "user@site.com", "password": "secret" },
"save": { "slot_1": "body.access_token" },
"assert": [ { "path": "status", "op": "=", "value": "200" } ]
}
Поля JSON:
- method — GET / POST / PUT / PATCH / DELETE.
- url — только http/https. Внутренние/приватные IP заблокированы.
- headers — заголовки (объект).
- body — тело. Объект → уйдёт как JSON. Для форм добавьте заголовок
Content-Type: application/x-www-form-urlencoded. - save — что достать из ответа в слот. Путь:
status,text,body.поле,body.items[0].id,headers.Имя. - assert — проверки. Операторы:
= != > < >= <= IN "NOT IN" LIKE. Провал любой проверки → тест падает.
Переиспользование значения из ответа (токен, id): сохранили в
слот через save → в любом следующем шаге пишете rmb:slot_1,
воркер подставит значение. Например, отдать токен браузеру:
- API-запрос — POST /login,
save: slot_1 = body.access_token - Установить HTTP-заголовки —
Authorization: Bearer rmb:slot_1 - Перейти на страницу — открыть закрытую под авторизацией страницу
Или переиспользовать токен в самом API — во втором запросе:
{
"method": "GET",
"url": "https://api.site.com/objects?limit=50",
"headers": { "Authorization": "Bearer rmb:slot_1" },
"save": { "slot_2": "body.items[0].id" },
"assert": [ { "path": "status", "op": "=", "value": "200" } ]
}
Пошаговый разбор связки «авторизоваться → выгрузить список объектов по API» — в статье-кейсе «Тестируем API с помощью TestMW».