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 (най-висок)
DataCollection 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 сървърите позволяват емулация на API ендпойнти на базата на съществуващи колекции. Това е полезно, когато backend все още не е готов, а frontend или мобилното приложение вече се разработва. Mock сървърът връща примерен отговор от колекцията с коректни заглавки и код на състоянието.

Създаване на Mock сървър

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

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

Monitors стартират колекцията по график (всеки 5 минути, час или ден) и проверяват наличността и коректността на API. При провал на тест мониторът изпраща известие на имейл или в 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 г. Ще ви консултираме и ще предложим най-доброто решение.

Обсъдете проекта

Прочетете също