08. Скрипты и автоматизация
Что вы узнаете
- Где писать скрипты До запроса и После ответа
- Как читать ответ, запускать проверки и сохранять значения в переменные
- Как пользоваться меню сниппетов
insomnia.*(переменные, запрос, ответ, тесты)

Где писать скрипты
- У каждого запроса есть вкладка Скрипты.
- Внутри неё две секции:
- До запроса — выполняется перед отправкой (подходит для подготовки данных и изменения запроса).
- После ответа — выполняется после получения ответа (подходит для тестов и извлечения данных из ответа).
Редактор и меню сниппетов

- Скрипты пишутся на JavaScript.
- Внизу редактора есть удобное меню со сниппетами
insomnia.*. Оно помогает быстро вставлять готовые фрагменты кода без ручного набора. - Доступные разделы меню:
- Фрагменты переменных —
get/set/unsetдляenvironment,globals,variables,collectionVariables, а также переменные уровня папки.
- Манипуляции с запросом — метод, заголовки, query-параметры, тело, auth.

- Обработка ответа — статус-код/сообщение, время ответа, тело как JSON/текст, поиск заголовка, cookies.

- Утилиты тестирования — примеры
insomnia.test(...)иinsomnia.expect(...).
- Разное —
sendRequest,console.log, задержка,skipRequest,setNextRequest, информация об активном запросе.
- Фрагменты переменных —
- Любой пункт меню вставляет сниппет в строку под курсором (ниже текущей строки) и возвращает фокус в редактор.
Пример: «После ответа» — проверить статус и сохранить токен

const resp = insomnia.response.json();
const statusCode = insomnia.response.code;
insomnia.expect(statusCode).to.eql(200);
insomnia.environment.set('access_token', resp.token);
insomnia.response.json()— получить тело ответа как JSON (для application/json).insomnia.response.code— статус-код.insomnia.expect(...)— проверки (chai-подобный синтаксис).insomnia.environment.set(...)— сохранить значение в активное окружение.
Пример: «До запроса» — изменить запрос перед отправкой
// Добавить заголовок
insomnia.request.addHeader({ key: 'X-Request-Timestamp', value: new Date().toISOString() });
// Добавить query-параметр
insomnia.request.url.addQueryParams('debug=true');
// При необходимости — поменять метод
insomnia.request.method = 'GET';
Переменные в скриптах
В скриптах доступны разные области переменных (и соответствующие методы get/set/unset):
// Окружение (активное окружение в текущем проекте/коллекции)
const url = insomnia.environment.get('url');
// Глобальные переменные
const token = insomnia.globals.get('token');
// Переменные коллекции
insomnia.collectionVariables.set('customer_id', '123');
// Универсальный доступ (объединённый слой переменных)
const any = insomnia.variables.get('variable_name');
Автоматизация в Runner
Для сценариев прогонов (Runner) доступны управляющие команды:
// Пропустить текущий запрос
insomnia.execution.skipRequest();
// Перейти к следующему запросу (по имени или ID)
insomnia.execution.setNextRequest('ADD_REQUEST_NAME_OR_ID_HERE');
Отладка
- Для диагностики используйте
console.log(...). - Ошибки и результаты выполнения удобно смотреть в панели выполнения/таймлайне запроса и в отчётах Runner (см. 12 Тестирование и Runner ).
Предыдущий: 07. Окружения и переменные
Следующий: 09. GraphQL