Руководство по объектам Postman

Руководство по объектам Postman

Краткое описание по популярным JavaScript-объектам Postman с примерами

Эта страница содержит список популярных объектов Postman (pm.*), используемых в скриптах (Pre-request Script и Post-response), с описаниями и примерами.

1. pm.request

Запрос URL Метод

Объект предоставляет доступ к данным текущего запроса (метод, URL, заголовки, тело и т.д.).

Пример кода
 console.log(pm.request.method); // Выводит метод запроса, например, "GET"
console.log(pm.request.url.toString()); // Выводит полный URL запроса
console.log(pm.request.headers.get("Content-Type")); // Выводит значение заголовка Content-Type 

2. pm.response

Ответ Статус-код JSON

Объект pm.response предоставляет доступ к данным полученного ответа на запрос. Этот объект доступен только в скрипте Tests (после выполнения запроса) и содержит статус-код, заголовки, тело ответа и другие метаданные, полученные от сервера.

Основные свойства и методы

  • pm.response.code — возвращает статус-код ответа (200, 404, 500 и т.д.)
  • pm.response.status — текстовое описание статуса (OK, Not Found)
  • pm.response.headers — доступ к заголовкам ответа
  • pm.response.responseTime — время выполнения запроса в миллисекундах
  • pm.response.text() — возвращает тело ответа как текст
  • pm.response.json() — парсит тело ответа как JSON-объект

Типичные сценарии использования

  • Проверка успешности запроса через статус-код
  • Извлечение данных из JSON-ответа для использования в следующих запросах
  • Валидация структуры и содержимого ответа API
  • Измерение производительности API (через responseTime)
Пример базового использования
 console.log(pm.response.code); // Выводит статус-код, например, 200
console.log(pm.response.json()); // Парсит тело ответа как JSON
console.log(pm.response.headers.get("Content-Type")); // Выводит заголовок Content-Type ответа
pm.test("Статус-код 200", () => {
    pm.expect(pm.response.code).to.equal(200);
}); 
Обработка разных форматов ответа
 // JSON-ответ
const jsonData = pm.response.json();
pm.environment.set("userId", jsonData.user.id);

// XML-ответ
const xmlData = pm.response.text();
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(xmlData, "text/xml");
const value = xmlDoc.getElementsByTagName("status")[0].textContent;

// HTML-ответ
const htmlData = pm.response.text();
const titleRegex = /<title>(.*?)<\/title>/;
const matches = htmlData.match(titleRegex);
const title = matches ? matches[1] : null; 

Советы и рекомендации

  • Всегда проверяйте статус-код перед обработкой тела ответа
  • Используйте try/catch при вызове pm.response.json(), если не уверены, что ответ является валидным JSON
  • Сохраняйте часто используемые значения из ответа в переменные окружения, чтобы использовать их в следующих запросах
  • Для сложных проверок JSON создавайте составные тесты с использованием pm.expect()

Типичные ошибки

  • Попытка использовать pm.response в скрипте Pre-request
  • Вызов pm.response.json() без проверки типа ответа
  • Вызов pm.response.json() несколько раз, что ведет к повторной обработке
  • Забывать обрабатывать пустые ответы или null-значения

3. pm.variables

Переменные Доступ Все уровни

Объект для работы с переменными всех уровней (локальные, глобальные, окружения, коллекции).

Пример кода
 pm.variables.set("myVar", "testValue"); // Устанавливает локальную переменную
console.log(pm.variables.get("myVar")); // Получает значение переменной 

4. pm.environment

Окружение Переменные Environment

Объект для работы с переменными окружения.

Пример кода
 pm.environment.set("apiKey", "abc123"); // Устанавливает переменную окружения
console.log(pm.environment.get("apiKey")); // Выводит значение переменной окружения
pm.environment.unset("apiKey"); // Удаляет переменную 

5. pm.globals

Глобальные Переменные Workspace

Объект для работы с глобальными переменными, доступными во всех запросах.

Пример кода
 pm.globals.set("baseUrl", "https://api.example.com"); // Устанавливает глобальную переменную
console.log(pm.globals.get("baseUrl")); // Выводит значение глобальной переменной
pm.globals.unset("baseUrl"); // Удаляет глобальную переменную 

6. pm.collectionVariables

Коллекция Переменные Область видимости

Объект для работы с переменными уровня коллекции.

Пример кода
 pm.collectionVariables.set("collectionVar", "value"); // Устанавливает переменную коллекции
console.log(pm.collectionVariables.get("collectionVar")); // Выводит значение
pm.collectionVariables.unset("collectionVar"); // Удаляет переменную 

7. pm.cookies

Cookies Сессия Доступ

Объект для работы с куки, связанными с запросом.

Пример кода
 console.log(pm.cookies.has("sessionId")); // Проверяет, есть ли куки с именем sessionId (true/false)
console.log(pm.cookies.get("sessionId")); // Получает значение куки
console.log(pm.cookies.toObject()); // Возвращает все куки в виде объекта 

8. pm.cookies.jar

Cookie Jar Домен Управление

Объект для управления куки для определённого домена.

Пример кода
 const jar = pm.cookies.jar();
jar.set("https://example.com", "myCookie", "cookieValue", (err, cookie) => {
    if (err) console.log(err);
    console.log(cookie);
}); 

9. pm.vault

Хранилище Безопасность Секреты

Объект для работы с Postman Vault — локальным хранилищем для чувствительных данных (секретов). Асинхронный.

Пример кода
 // Получение секрета
console.log(await pm.vault.get("secretKey")); // Выводит значение секрета
// Установка секрета
await pm.vault.set("secretKey", "newSecretValue");
// Удаление секрета
await pm.vault.unset("secretKey"); 

10. pm.sendRequest

HTTP-запрос Скрипт Асинхронный

Метод для отправки HTTP-запросов из скриптов.

Пример кода
 pm.sendRequest("https://postman-echo.com/get", (err, res) => {
    if (err) {
        console.log(err);
    } else {
        console.log(res.json()); // Выводит ответ в формате JSON
        pm.environment.set("token", res.json().token); // Сохраняет токен
    }
}); 

11. pm.test

Тесты Проверки Assertions

Метод для написания тестов. Используется для проверки условий в ответах (assertions).

Пример кода
 pm.test("Проверка статуса ответа", () => {
    pm.expect(pm.response.code).to.equal(200); // Проверяет, что статус-код 200
    pm.expect(pm.response.json().status).to.equal("success"); // Проверяет значение в теле ответа
}); 

12. pm.expect

Утверждения Chai.js Проверки

Метод, используемый внутри pm.test для создания утверждений (assertions). Поддерживает синтаксис chai.js.

Пример кода
 pm.test("Проверка тела ответа", () => {
    const response = pm.response.json();
    pm.expect(response).to.be.an("object"); // Проверяет, что ответ — объект
    pm.expect(response.id).to.equal(1); // Проверяет значение поля id
}); 

13. pm.info

Метаданные Информация Запрос

Объект предоставляет метаданные о текущем запросе или выполнении.

Пример кода
 console.log(pm.info.requestName); // Выводит имя текущего запроса
console.log(pm.info.iteration); // Выводит номер текущей итерации (при использовании Collection Runner) 

14. pm.iterationData

Данные CSV/JSON Runner

Объект для работы с данными, загруженными из файла (CSV/JSON) при использовании Collection Runner.

Пример кода
 console.log(pm.iterationData.get("username")); // Получает значение переменной username из файла данных 

Дополнительные ресурсы

Для полного списка объектов и методов обратитесь к официальной документации Postman:

Документация по JavaScript-объектам Postman