Краткое описание по популярным JavaScript-объектам Postman с примерами
Эта страница содержит список популярных объектов Postman (pm.*), используемых в скриптах (Pre-request Script и Post-response), с описаниями и примерами.
Объект предоставляет доступ к данным текущего запроса (метод, URL, заголовки, тело и т.д.).
console.log(pm.request.method); // Выводит метод запроса, например, "GET"
console.log(pm.request.url.toString()); // Выводит полный URL запроса
console.log(pm.request.headers.get("Content-Type")); // Выводит значение заголовка Content-Type
Объект 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-объект 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()
, если не уверены, что ответ является валидным JSONpm.expect()
pm.response
в скрипте Pre-requestpm.response.json()
без проверки типа ответаpm.response.json()
несколько раз, что ведет к повторной обработкеОбъект для работы с переменными всех уровней (локальные, глобальные, окружения, коллекции).
pm.variables.set("myVar", "testValue"); // Устанавливает локальную переменную
console.log(pm.variables.get("myVar")); // Получает значение переменной
Объект для работы с переменными окружения.
pm.environment.set("apiKey", "abc123"); // Устанавливает переменную окружения
console.log(pm.environment.get("apiKey")); // Выводит значение переменной окружения
pm.environment.unset("apiKey"); // Удаляет переменную
Объект для работы с глобальными переменными, доступными во всех запросах.
pm.globals.set("baseUrl", "https://api.example.com"); // Устанавливает глобальную переменную
console.log(pm.globals.get("baseUrl")); // Выводит значение глобальной переменной
pm.globals.unset("baseUrl"); // Удаляет глобальную переменную
Объект для работы с переменными уровня коллекции.
pm.collectionVariables.set("collectionVar", "value"); // Устанавливает переменную коллекции
console.log(pm.collectionVariables.get("collectionVar")); // Выводит значение
pm.collectionVariables.unset("collectionVar"); // Удаляет переменную
Объект для работы с куки, связанными с запросом.
console.log(pm.cookies.has("sessionId")); // Проверяет, есть ли куки с именем sessionId (true/false)
console.log(pm.cookies.get("sessionId")); // Получает значение куки
console.log(pm.cookies.toObject()); // Возвращает все куки в виде объекта
Объект для управления куки для определённого домена.
const jar = pm.cookies.jar();
jar.set("https://example.com", "myCookie", "cookieValue", (err, cookie) => {
if (err) console.log(err);
console.log(cookie);
});
Объект для работы с Postman Vault — локальным хранилищем для чувствительных данных (секретов). Асинхронный.
// Получение секрета
console.log(await pm.vault.get("secretKey")); // Выводит значение секрета
// Установка секрета
await pm.vault.set("secretKey", "newSecretValue");
// Удаление секрета
await pm.vault.unset("secretKey");
Метод для отправки 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); // Сохраняет токен
}
});
Метод для написания тестов. Используется для проверки условий в ответах (assertions).
pm.test("Проверка статуса ответа", () => {
pm.expect(pm.response.code).to.equal(200); // Проверяет, что статус-код 200
pm.expect(pm.response.json().status).to.equal("success"); // Проверяет значение в теле ответа
});
Метод, используемый внутри 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
});
Объект предоставляет метаданные о текущем запросе или выполнении.
console.log(pm.info.requestName); // Выводит имя текущего запроса
console.log(pm.info.iteration); // Выводит номер текущей итерации (при использовании Collection Runner)
Объект для работы с данными, загруженными из файла (CSV/JSON) при использовании Collection Runner.
console.log(pm.iterationData.get("username")); // Получает значение переменной username из файла данных
Для полного списка объектов и методов обратитесь к официальной документации Postman:
Документация по JavaScript-объектам Postman