
Шпаргалка: как доставать данные из ответа в Postman
Когда вы работаете в Postman, любой запрос возвращает ответ: с кодом, заголовками и (иногда) телом (body).
Чтобы проверить или использовать данные из этого ответа, в Postman есть специальный язык мини-скриптов, который пишется во вкладке PostResponse.

В нём уже доступен объект pm, через который можно обратиться к любой части ответа: статус, заголовки, cookies или содержимое JSON-тела.
Не обязательно сохранять добытые данные в переменные окружения — иногда нужно просто посмотреть, что приходит, или проверить отдельное поле, а ля этого достаточно одной строки кода.
Результаты можно увидеть в Postman Console — откройте её через View → Show Postman Console.

Когда вы положили в переменную этот ответ. Например, у нас в ответе лежит вот такой джейсон:
{
"token": "eyJhbGciOiJIUzI1NiIsInR5c",
"login": "ermita"
}
И тогда из этого ответа вы можете получить, например token
var jsonData = pm.response.json().token
Вы можете обратиться к этой переменной и, например, вывести ее в консоль
console.log('token_var:', jsonData);
Или сохранить в переменную, например, которая находится в пространстве Global (название переменной мы указываем в кавычках)
pm.global.set("token_var", jsonData.token);
Еще один вариант — указать, что в ответе лежит джейсон, а потом обращаться к нему через переменную:
var jsonData = pm.response.json() //не пишем к какой части джейсона мы обращаемся
console.log('token_var:', jsonData.token); // выводим в лог токен, который лежит внутри джейсона
pm.global.set("login_var", jsonData.login); // сохраняем в global логин, который лежит внутри джейсона
Или еще вариант, например мы получаем header в котором есть заголовок xChallenger

Тогда мы обращаемся к header ответа, ищем там заголовок и выводим его в консоль
var xChallenger = pm.response.headers.get('X-Challenger');
console.log('X-CH:', xChallenger);
Шпаргалка по основным скриптам
| Пример ответа | В Tests пишем (только get) | Что получим / проверим |
|---|---|---|
HTTP/1.1 200 OK | pm.response.code | Код статуса: 200 |
HTTP/1.1 201 Created | pm.response.status | Текст статуса: "Created" |
| — | pm.response.responseTime | Время ответа в мс |
| — | pm.response.size().body | Размер тела ответа |
Content-Type: application/json | pm.response.headers.get('Content-Type') | Значение заголовка |
ETag: "abc123" | pm.response.headers.has('ETag') | Проверка наличия заголовка (true/false) |
Set-Cookie: sid=xyz; Path=/ | pm.cookies.get('sid') | Значение cookie sid |
| — | pm.cookies.has('sid') | Есть ли cookie с таким именем |
json {"token":"XYZ","user":{"id":42}} | pm.response.json().token | Достать поле token из JSON |
| (тот же JSON) | pm.response.json().user.id | Вложенное поле id |
json {"todos":[{"id":1},{"id":2}]} | pm.response.json().todos[0].id | Первый id из массива |
json {"items":[{"id":7},{"id":9}]} | pm.response.json().items.map(x=>x.id) | Массив id: [7,9] |
json {"items":[{"id":7},{"id":9}]} | pm.response.json().items.length | Длина массива |
json {"meta":{"next":"/v1/page/2"}} | pm.response.json().meta?.next | Ошибки не будет, даже если meta нет |
json {"price":"19.99","inStock":true} | Number(pm.response.json().price) | Преобразовать строку в число |
Текст: ok=true&user=neo | new URLSearchParams(pm.response.text()).get('user') | Из url-encoded тела достать user |
HTML: <title>Hello</title> | /\<title\>(.*?)\<\/title\>/.exec(pm.response.text())?.[1] | Значение тега title |
XML: <user><id>42</id></user> | xml2Json(pm.response.text()).user.id | Достать поле из XML |
| Любое тело | pm.response.text() | Ответ как чистая строка |
Заголовок редиректа Location: /cb?code=123 | new URLSearchParams(pm.response.headers.get('Location').split('?')[1]).get('code') | Достать query-параметр code |
Пагинация Content-Range: items 0-49/200 | pm.response.headers.get('Content-Range').split('/')[1] | Общее количество ("200") |
| JSON-список объектов | pm.response.json().items.find(x=>x.name==='Alice') | Первый объект по условию |
| JSON-список чисел | pm.response.json().values.every(n=>n>0) | Проверка: все значения > 0 |
| JSON-строка-дата | new Date(pm.response.json().createdAt) | Преобразовать в объект Date |
| Проверка подстроки | pm.response.text().includes('success') | true/false по наличию текста |
| Проверка MIME | pm.response.headers.get('Content-Type')?.includes('json') | Ответ — JSON? |
| Безопасное чтение поля | pm.response.json()?.data?.[0]?.id ?? null | Аккуратное извлечение с запасным null |
Всё в ответе доступно через объект pm.response
- pm.response.json() — для JSON-ответов.
- pm.response.text() — для обычного текста или HTML.
- pm.response.headers.get(‘…’) — для заголовков.
- pm.cookies.get(‘…’) — для cookies.
console.log() помогает просто увидеть данные, не ломая тесты.


