Postman: co to jest, testowanie API i praca z żądaniami

Autor: IT Sectr Opublikowano: 2026-05-08 Czas czytania: 9 min

Postman — to platforma do testowania API z interfejsem graficznym, obsługująca protokoły REST, GraphQL, WebSocket i gRPC. Narzędzie pozwala tworzyć i wysyłać żądania HTTP, organizować je w kolekcje, automatyzować testowanie za pomocą skryptów oraz generować dokumentację endpointów. Według danych Postman Learning Center (2026), platformę używa ponad 25 milionów programistów na całym świecie.

Najważniejsze

  • Postman — to uniwersalny klient API z wizualnym edytorem żądań, kolekcjami i zmiennymi środowiskowymi.
  • Collections łączą żądania w grupy z możliwością uruchamiania przez Collection Runner z testami w JavaScript.
  • Zmienne środowiskowe pozwalają przełączać się między dev, staging i production bez ręcznej zmiany żądań.
  • Automatyzacja testów realizowana jest przez Pre-request Scripts i Tests w języku JavaScript z asynchronicznymi testami.
  • Dokumentacja generowana jest automatycznie na podstawie kolekcji z obsługą Markdown i przykładów kodu w różnych językach.

Czym jest Postman i kluczowe możliwości

Postman to platforma do tworzenia i testowania API, dostępna jako aplikacja desktopowa (Windows, macOS, Linux) oraz wersja webowa. Utworzony pierwotnie jako rozszerzenie dla Chrome w 2012 roku, Postman przekształcił się w pełnoprawny ekosystem z obsługą monitoringu, mock-serwerów i generowania kodu klienckiego.

Formaty żądań i odpowiedzi

Postman obsługuje wszystkie metody HTTP: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS. Treść żądania może być w formatach JSON, XML, form-data, x-www-form-urlencoded i binary. Odpowiedź wyświetlana jest z podświetlaniem składni, Pretty-print i możliwością przeglądania surowych nagłówków.

Obsługa uwierzytelniania

Wbudowane typy uwierzytelniania obejmują Bearer Token, Basic Auth, Digest Auth, OAuth 1.0, OAuth 2.0, API Key i AWS Signature. Postman automatycznie dodaje nagłówek Authorization zgodnie z wybranym typem, co przyspiesza testowanie zabezpieczonych endpointów bez ręcznego kopiowania tokenów.

Interfejs Postman i nawigacja

Interfejs Postman składa się z panelu bocznego (Collections, APIs, Environments), obszaru roboczego (Request Builder/Response Viewer) i dolnego panelu (Console, Runner). Karta Params pozwala edytować parametry query URL w formie tabeli, a karta Headers — zarządzać nagłówkami HTTP.

Postman Console

Console (View → Show Postman Console) rejestruje wszystkie żądania i odpowiedzi sieciowe w porządku chronologicznym, w tym pośrednie przekierowania i nagłówki. To niezastąpione narzędzie podczas debugowania złożonych przepływów OAuth i łańcuchów przekierowań, gdy standardowy Response Viewer pokazuje tylko końcowy wynik.

Workspaces i praca zespołowa

Postman obsługuje zespołowe przestrzenie robocze (Workspaces) z wersjonowaniem kolekcji przez Fork i Merge. Członkowie zespołu mogą komentować żądania, proponować zmiany i synchronizować kolekcje w czasie rzeczywistym. Public Workspace umożliwia publikowanie dokumentacji API dla zewnętrznych programistów.

Tworzenie i wysyłanie żądań HTTP

Podstawowe żądanie w Postman tworzy się, wybierając metodę HTTP i wpisując URL w pasku adresu. Po wysłaniu odpowiedź wyświetlana jest w dolnym panelu z kodem statusu, czasem wykonania i rozmiarem. Parametry żądania są automatycznie kodowane podczas wpisywania.

Zmienne dynamiczne i snippety

W adresie URL i treści żądania można używać zmiennych dynamicznych w formacie {`{`}}$variable${`}`}. Wbudowane zmienne {`{`}$guid${`}`}, {`{`}$timestamp${`}`} i {`{`}$randomInt${`}`} generują unikalne wartości dla każdego żądania. Snippety kodu są dostępne przyciskiem Code (), który generuje równoważne żądanie w cURL, Python, JavaScript, Kotlin, Swift i innych językach.

javascript
// Przykład skryptu w Pre-request: generowanie podpisu 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()
});

Kolekcje i zmienne środowiskowe

Kolekcje to grupy powiązanych żądań połączonych według projektu lub modułu funkcjonalnego. Każda kolekcja może zawierać zagnieżdżone foldery, wspólne nagłówki i skrypty Pre-request, które są wykonywane przed każdym żądaniem w kolekcji. Kolejność żądań ustawia się metodą przeciągania.

Zmienne środowiskowe i zmienne globalne

Postman obsługuje pięć poziomów zmiennych: global, collection, environment, data i local. Priorytet rozwiązywania konfliktów — od lokalnych do globalnych. Pliki Environment zawierają pary klucz-wartość dla różnych środowisk: development, staging, production. Przełączanie środowiska automatycznie zmienia wszystkie adresy URL i tokeny.

PoziomZakresPriorytet
LocalBieżące żądanie1 (najwyższy)
DataCollection Runner (z CSV/JSON)2
EnvironmentAktywne środowisko3
CollectionCała kolekcja4
GlobalCała przestrzeń robocza5

Automatyzacja testowania API za pomocą skryptów

Postman pozwala pisać testy w JavaScript na karcie Tests, które są wykonywane po otrzymaniu odpowiedzi. Testy sprawdzają kod statusu, treść odpowiedzi, nagłówki i czas wykonania. Wyniki wyświetlane są na panelu Test Results z kolorowym wskaźnikiem zaliczenia.

Biblioteka pm i łączenie żądań (chaining)

Obiekt pm udostępnia metody pracy z odpowiedzią: pm.response, pm.expect, pm.variables. Łączenie żądań realizuje się przez zapisanie danych z odpowiedzi jednego żądania w zmiennej i użycie jej w kolejnym. To podstawa budowania testów integracyjnych i weryfikacji logiki biznesowej przez sekwencję wywołań API.

javascript
// Test: sprawdzenie struktury odpowiedzi i zapisanie tokenu
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 i Newman

Collection Runner uruchamia wszystkie żądania kolekcji sekwencyjnie, wykonując testy na każdym kroku. Newman to konsolowa wersja Postman dla pipeline'ów CI/CD (Jenkins, GitHub Actions, GitLab CI). Newman eksportuje raport w formatach JSON, JUnit i HTML do integracji z systemami monitoringu.

Praca z GraphQL i WebSocket

GraphQL żądania w Postman wysyła się przez POST na jeden endpoint z treścią w formacie JSON. Karta GraphQL (Beta) udostępnia wizualny edytor z podświetlaniem składni, autouzupełnianiem pól i schematem. Zmienne żądania przekazywane są na osobnym panelu Variables.

Testowanie WebSocket i Socket.IO

Postman obsługuje połączenia WebSocket przez osobny interfejs z panelem wiadomości. Można wysyłać wiadomości tekstowe i binarne, przeglądać historię połączenia i automatycznie wznawiać połączenie po zerwaniu. Klient Socket.IO działa w trybie zgodności z protokołem Engine.IO.

javascript
// Test WebSocket w Postman przez API pm
const ws = new WebSocket("wss://echo.websocket.org");
ws.onmessage = (event) => {
    pm.test("Echo response received", () => {
        pm.expect(event.data).to.eql("Hello");
    });
};

Mock-serwery i monitoring w Postman

Mock-serwery Postman pozwalają emulować endpointy API na podstawie istniejących kolekcji. Jest to przydatne, gdy backend nie jest jeszcze gotowy, a frontend lub aplikacja mobilna jest już rozwijana. Mock-serwer zwraca przykładową odpowiedź z kolekcji z poprawnymi nagłówkami i kodem statusu.

Tworzenie mock-serwera

Mock-serwer tworzy się z kolekcji jednym kliknięciem: wybierz kolekcję → Mock Servers → Add a new mock server. Postman generuje unikalny URL, który można użyć w kodzie aplikacji zamiast prawdziwego API. Dla każdego żądania kolekcji mock zwraca zapisaną Example Response, co pozwala testować UI przed ukończeniem backendu.

Monitoring API przez Postman Monitors

Monitors uruchamiają kolekcję zgodnie z harmonogramem (co 5 minut, godzinę lub dzień) i sprawdzają dostępność oraz poprawność API. Po nieudanym teście monitor wysyła powiadomienie na e-mail lub do Slack. Monitoring działa z chmury Postman, nie wymaga osobnego serwera i obsługuje do 10 000 żądań miesięcznie w darmowym planie.

javascript
// Test do monitoringu: sprawdzenie czasu odpowiedzi
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");
});

Bezpieczeństwo i zarządzanie sekretami

Postman udostępnia mechanizmy bezpiecznej pracy z kluczami API. Zmienne typu Secret są szyfrowane i nie są wyświetlane w interfejsie. Do pracy zespołowej użyj Workspace z rolami Admin, Editor i Viewer.

Szyfrowanie zmiennych

Podczas tworzenia zmiennej środowiskowej wybierz typ Secret — wartość ukrywana jest gwiazdkami we wszystkich interfejsach. Sekrety nie są eksportowane do kolekcji przy udostępnianiu i nie pojawiają się w logach Newman. Hasła i tokeny zaleca się przechowywać wyłącznie w zmiennych Secret.

Integracja z Vault

Postman obsługuje integrację z HashiCorp Vault i AWS Secrets Manager. Skrypty Pre-request mogą dynamicznie pobierać sekrety z zewnętrznego magazynu, eliminując przechowywanie wrażliwych danych w plikach kolekcji i środowiska.

Bezpieczeństwo i zarządzanie sekretami

Postman udostępnia mechanizmy bezpiecznej pracy z kluczami API. Zmienne typu Secret są szyfrowane i nie są wyświetlane w interfejsie. Do pracy zespołowej użyj Workspace z rolami Admin, Editor i Viewer.

Szyfrowanie zmiennych

Podczas tworzenia zmiennej środowiskowej wybierz typ Secret — wartość ukrywana jest gwiazdkami we wszystkich interfejsach. Sekrety nie są eksportowane do kolekcji przy udostępnianiu i nie pojawiają się w logach Newman. Hasła i tokeny zaleca się przechowywać wyłącznie w zmiennych Secret.

Integracja z Vault

Postman obsługuje integrację z HashiCorp Vault i AWS Secrets Manager. Skrypty Pre-request mogą dynamicznie pobierać sekrety z zewnętrznego magazynu, eliminując przechowywanie wrażliwych danych w plikach kolekcji i środowiska.

Często zadawane pytania

Czym Postman różni się od Insomnia?

Postman oferuje szerszy ekosystem: kolekcje, środowiska, monitoring, mock-serwery i Newman dla CI/CD. Insomnia skupia się na lekkości i szybkości przy mniejszym zużyciu pamięci. Postman lepiej sprawdza się w pracy zespołowej, Insomnia — w indywidualnym użytkowaniu.

Jak przekazać token autoryzacji między żądaniami?

Na karcie Tests pierwszego żądania zapisz token w środowisku: pm.environment.set("token", pm.response.json().token). W drugim żądaniu użyj zmiennej {`{`}$token${`}`} w nagłówku Authorization. Runner automatycznie podstawi wartość przy sekwencyjnym uruchomieniu.

Czy można zaimportować polecenie cURL do Postman?

Tak, przez przycisk Import → Raw Text. Postman automatycznie parsuje polecenie cURL i tworzy żądanie z nagłówkami, metodą i treścią. Obsługiwane są wszystkie flagi cURL, w tym -H, -d, -F i -u. Odwrotna konwersja dostępna jest przez przycisk Code (<>).

Jak testować GraphQL w Postman?

Użyj żądania POST z treścią JSON: {"query": "..."}. Karta GraphQL udostępnia wizualny edytor z ładowaniem schematu przez Introspection Query. Zmienne żądania przekazywane są w polu variables tego samego obiektu JSON.

Co to jest Newman i do czego służy?

Newman to konsolowa wersja Postman do uruchamiania kolekcji w CI/CD. Instalowany przez npm, obsługuje raporty HTML i integrację z Jenkins, GitHub Actions i GitLab CI. Pozwala automatyzować testy regresyjne API bez interfejsu graficznego.

Podsumowanie

  • Postman to uniwersalna platforma do testowania API REST, GraphQL, WebSocket i gRPC z 25 milionami użytkowników.
  • Kolekcje łączą żądania według projektów z obsługą zagnieżdżonych folderów i wspólnych skryptów.
  • Zmienne środowiskowe zapewniają bezproblemowe przełączanie między dev, staging i production bez ręcznego edytowania.
  • Automatyzacja testów realizowana jest przez skrypty JavaScript z obiektem pm i Collection Runner do uruchamiania wsadowego.
  • Newman integruje się z pipeline'ami CI/CD do regresyjnego testowania API przy każdym wdrożeniu.
  • Zmienne dynamiczne ułatwiają testowanie unikalnymi danymi przez $guid, $timestamp i $randomInt.
  • Obsługa WebSocket i GraphQL rozszerza zastosowanie Postman poza klasyczne żądania REST.

Opracujemy aplikację mobilną pod klucz

IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.

Omów projekt

Przeczytaj również