Postman: що це таке, тестування API та робота із запитами

Автор: IT Sectr Опубліковано: 2026-05-08 Час читання: 9 хв

Postman — платформа для тестування API з графічним інтерфейсом, що підтримує протоколи REST, GraphQL, WebSocket і gRPC. Інструмент дозволяє створювати та надсилати HTTP-запити, організовувати їх у колекції, автоматизувати тестування через скрипти та генерувати документацію по ендпоінтах. За даними Postman Learning Center (2026), платформою користуються понад 25 мільйонів розробників у всьому світі.

Головне

  • Postman — універсальний API-клієнт із візуальним редактором запитів, колекціями та змінними середовища.
  • Collections об'єднують запити в групи з можливістю запуску через Collection Runner із перевірками на JavaScript.
  • Змінні середовища дозволяють перемикатися між dev, staging і production без зміни запитів вручну.
  • Автоматизація тестів реалізується через Pre-request Scripts і Tests мовою JavaScript з асинхронними перевірками.
  • Документація генерується автоматично на основі колекції з підтримкою Markdown і прикладів коду різними мовами.

Що таке Postman і ключові можливості

Postman — це платформа для розробки та тестування API, доступна як настільний застосунок (Windows, macOS, Linux) і веб-версія. Спочатку створений як розширення для Chrome у 2012 році, Postman перетворився на повноцінну екосистему з підтримкою моніторингу, mock-серверів і генерації клієнтського коду.

Формати запитів і відповідей

Postman підтримує всі HTTP-методи: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS. Тіло запиту може бути у форматах JSON, XML, form-data, x-www-form-urlencoded і binary. Відповідь відображається з підсвіткою синтаксису, Pretty-print і можливістю перегляду сирих заголовків.

Підтримка автентифікації

Вбудовані типи автентифікації включають Bearer Token, Basic Auth, Digest Auth, OAuth 1.0, OAuth 2.0, API Key і AWS Signature. Postman автоматично підставляє заголовки Authorization згідно з обраним типом, що прискорює тестування захищених ендпоінтів без ручного копіювання токенів.

Інтерфейс Postman і навігація

Інтерфейс Postman складається з бічної панелі (Collections, APIs, Environments), робочої області (Request Builder/Response Viewer) і нижньої панелі (Console, Runner). Вкладка Params дозволяє редагувати query-параметри URL у табличному вигляді, вкладка Headers — керувати HTTP-заголовками.

Postman Console

Console (View → Show Postman Console) логує всі мережеві запити та відповіді в хронологічному порядку, включно з проміжними редиректами та заголовками. Це незамінний інструмент під час налагодження складних OAuth-потоків і ланцюжків редиректів, коли стандартний Response Viewer показує лише кінцевий результат.

Workspaces і командна робота

Postman підтримує командні робочі простори (Workspaces) із версіонуванням колекцій через Fork і Merge. Учасники команди можуть коментувати запити, пропонувати зміни та синхронізувати колекції в реальному часі. Public Workspace дозволяє публікувати API-документацію для зовнішніх розробників.

Створення та надсилання HTTP-запитів

Базовий запит у Postman створюється вибором HTTP-методу та введенням URL в адресний рядок. Після надсилання відповідь відображається в нижній панелі з кодом статусу, часом виконання та розміром. Параметри запиту автоматично кодуються під час введення.

Динамічні змінні та снипети

В URL і тілі запиту можна використовувати динамічні змінні у форматі {{$variable}}. Вбудовані змінні {{$guid}}, {{$timestamp}} і {{$randomInt}} генерують унікальні значення для кожного запиту. Снипети коду доступні через кнопку Code (), яка генерує еквівалентний запит на cURL, Python, JavaScript, Kotlin, Swift та інших мовах.

javascript
// Приклад скрипта в Pre-request: генерація HMAC-підпису
const timestamp = Date.now().toString();
const secret = pm.environment.get("api_secret");
const hash = CryptoJS.HmacSHA256(timestamp, secret);
pm.request.headers.add({
    key: "X-Signature",
    value: hash.toString()
});

Колекції та змінні середовища

Колекції — це групи пов'язаних запитів, об'єднаних за проєктом або функціональним модулем. Кожна колекція може містити вкладені папки, спільні заголовки та Pre-request скрипти, які виконуються перед кожним запитом у колекції. Порядок запитів задається перетягуванням.

Змінні середовища та глобальні змінні

Postman підтримує п'ять рівнів змінних: global, collection, environment, data і local. Пріоритет розв'язання конфліктів — від локальних до глобальних. Environment-файли містять пари ключ-значення для різних середовищ: development, staging, production. Перемикання середовища змінює всі URL і токени автоматично.

Рівень Область видимості Пріоритет
Local Поточний запит 1 (найвищий)
Data Collection Runner (із CSV/JSON) 2
Environment Активне середовище 3
Collection Вся колекція 4
Global Весь робочий простір 5

Автоматизація тестування API через скрипти

Postman дозволяє писати тести на JavaScript у вкладці Tests, які виконуються після отримання відповіді. Тести перевіряють статус-код, тіло відповіді, заголовки та час виконання. Результати відображаються в панелі Test Results із кольоровою індикацією проходження.

Бібліотека pm і чейнінг запитів

Об'єкт pm надає методи для роботи з відповіддю: pm.response, pm.expect, pm.variables. Чейнінг запитів реалізується через збереження даних із відповіді одного запиту в змінну та використання її в наступному. Це основа для побудови інтеграційних тестів і перевірки бізнес-логіки через послідовність API-викликів.

javascript
// Тест: перевірка структури відповіді та збереження токена
pm.test("Status code is 200", () => {
    pm.response.to.have.status(200);
});

const json = pm.response.json();
pm.environment.set("auth_token", json.data.token);

Collection Runner і Newman

Collection Runner запускає всі запити колекції послідовно, виконуючи тести на кожному кроці. Newman — консольна версія Postman для CI/CD-пайплайнів (Jenkins, GitHub Actions, GitLab CI). Newman експортує звіт у форматах JSON, JUnit і HTML для інтеграції із системами моніторингу.

Робота з GraphQL і WebSocket

GraphQL запити в Postman надсилаються через POST на єдиний ендпоінт із тілом у форматі JSON. Вкладка GraphQL (Beta) надає візуальний редактор із підсвіткою синтаксису, автодоповненням полів і схемою. Змінні запиту передаються в окремій панелі Variables.

WebSocket і Socket.IO тестування

Postman підтримує WebSocket-з'єднання через окремий інтерфейс із панеллю повідомлень. Можна надсилати текстові та бінарні повідомлення, переглядати історію з'єднання та автоматично перепідключатися при розриві. Socket.IO клієнт працює в режимі сумісності з протоколом Engine.IO.

javascript
// WebSocket тест у Postman через pm API
const ws = new WebSocket("wss://echo.websocket.org");
ws.onmessage = (event) => {
    pm.test("Echo response received", () => {
        pm.expect(event.data).to.eql("Hello");
    });
};

Mock-сервери та моніторинг у Postman

Mock-сервери Postman дозволяють емулювати API-ендпоінти на основі наявних колекцій. Це корисно, коли бекенд ще не готовий, а фронтенд або мобільний застосунок уже розробляється. Mock-сервер повертає приклад відповіді з колекції з коректними заголовками та статус-кодом.

Створення Mock-сервера

Mock-сервер створюється з колекції в один клік: виберіть колекцію → Mock Servers → Add a new mock server. Postman генерує унікальний URL, який можна використовувати в коді застосунку замість реального API. Для кожного запиту колекції мок повертає збережену Example Response, що дозволяє перевіряти UI до завершення бекенду.

Моніторинг API через Postman Monitors

Monitors запускають колекцію за розкладом (кожні 5 хвилин, годину або день) і перевіряють доступність і коректність API. При падінні тесту монітор надсилає сповіщення на email або в Slack. Моніторинг працює з хмари Postman, не потребує окремого сервера та підтримує до 10 000 запитів на місяць на безкоштовному тарифі.

javascript
// Тест для моніторингу: перевірка часу відповіді
pm.test("Response time < 2000ms", () => {
    pm.expect(pm.response.responseTime).to.be.below(2000);
});

pm.test("Content-Type is JSON", () => {
    pm.response.to.have.header("Content-Type");
});

Безпека та керування секретами

Postman надає механізми для безпечної роботи з API-ключами. Змінні типу Secret шифруються та не відображаються в інтерфейсі. Для командної роботи використовуйте Workspace із ролями Admin, Editor і Viewer.

Шифрування змінних

При створенні змінної середовища виберіть тип Secret — значення ховається зірочками у всіх інтерфейсах. Секрети не експортуються в колекцію при шарінгу та не відображаються в логах Newman. Паролі та токени рекомендується зберігати тільки в Secret-змінних.

Інтеграція з Vault

Postman підтримує інтеграцію з HashiCorp Vault і AWS Secrets Manager. Скрипти Pre-request можуть динамічно запитувати секрети із зовнішнього сховища, виключаючи зберігання чутливих даних у файлах колекції середовища.

Безпека та керування секретами

Postman надає механізми для безпечної роботи з API-ключами. Змінні типу Secret шифруються та не відображаються в інтерфейсі. Для командної роботи використовуйте Workspace із ролями Admin, Editor і Viewer.

Шифрування змінних

При створенні змінної середовища виберіть тип Secret — значення ховається зірочками у всіх інтерфейсах. Секрети не експортуються в колекцію при шарінгу та не відображаються в логах Newman. Паролі та токени рекомендується зберігати тільки в Secret-змінних.

Інтеграція з Vault

Postman підтримує інтеграцію з HashiCorp Vault і AWS Secrets Manager. Скрипти Pre-request можуть динамічно запитувати секрети із зовнішнього сховища, виключаючи зберігання чутливих даних у файлах колекції середовища.

Часті запитання

Чим Postman відрізняється від Insomnia?

Postman пропонує ширшу екосистему: колекції, середовища, моніторинг, mock-сервери та Newman для CI/CD. Insomnia фокусується на легкості та швидкості з меншим споживанням пам'яті. Postman краще підходить для командної роботи, Insomnia — для індивідуального використання.

Як передати токен авторизації між запитами?

У Tests першого запиту збережіть токен в environment: pm.environment.set("token", pm.response.json().token). У другому запиті використовуйте змінну {{$token}} у заголовку Authorization. Runner автоматично підставить значення при послідовному запуску.

Чи можна імпортувати cURL команду в Postman?

Так, через кнопку Import → Raw Text. Postman автоматично парсить cURL-команду та створює запит із заголовками, методом і тілом. Підтримуються всі флаги cURL, включаючи -H, -d, -F і -u. Зворотна конвертація доступна через кнопку Code ().

Як тестувати GraphQL у Postman?

Використовуйте POST запит із JSON-тілом: {"query": "..."}. Вкладка GraphQL надає візуальний редактор із завантаженням схеми через Introspection Query. Змінні запиту передаються в поле variables того ж JSON-об'єкта.

Що таке Newman і навіщо він потрібен?

Newman — це консольна версія Postman для запуску колекцій у CI/CD. Встановлюється через npm, підтримує HTML-звіти та інтеграцію з Jenkins, GitHub Actions і GitLab CI. Дозволяє автоматизувати регресійне тестування API без графічного інтерфейсу.

Підсумки

  • Postman — універсальна платформа для тестування REST, GraphQL, WebSocket і gRPC API із 25 мільйонами користувачів.
  • Колекції об'єднують запити за проєктами з підтримкою вкладених папок і спільних скриптів.
  • Змінні середовища забезпечують безшовне перемикання між dev, staging і production без ручного редагування.
  • Автоматизація тестів реалізується через JavaScript-скрипти з об'єктом pm і Collection Runner для пакетного запуску.
  • Newman інтегрується в CI/CD пайплайни для регресійного тестування API при кожному деплої.
  • Динамічні змінні спрощують тестування з унікальними даними через $guid, $timestamp і $randomInt.
  • WebSocket і GraphQL підтримка розширює сферу застосування Postman за межі класичних REST-запитів.

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

Читайте також