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 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.
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.
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 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.
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.
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.
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.
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.
// 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 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.
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.
| Poziom | Zakres | Priorytet |
|---|---|---|
| Local | Bieżące żądanie | 1 (najwyższy) |
| Data | Collection Runner (z CSV/JSON) | 2 |
| Environment | Aktywne środowisko | 3 |
| Collection | Cała kolekcja | 4 |
| Global | Cała przestrzeń robocza | 5 |
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.
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.
// 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 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.
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.
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.
// 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 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.
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.
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.
// 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");
});
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.
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.
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.
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.
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.
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
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.
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.
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 (<>).
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.
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
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.
Przeczytaj również