Table of Contents
Jeżeli interesują Cię konkretne przykłady jak używać Postmana do testów to od razu zapraszam Cię na kanał TuJestBug gdzie znajdziesz materiały video na temat:
- jak pisać testy bez dokumentacji API (cURL)?
- jak wygenerować token?
- jak testować Trello w Postmanie?
- testy end to end
- zmienne
- jak napisać pierwszy test Rest Api w Postmanie?
A jeżeli chcesz sobie uzupełnić teorię i uszeregować swoją wiedzę to zapraszam do artykułu. 😊
Materiał jest uniwersalny- możesz najpierw zapoznać się z teorią i przejść do praktyki lub na odwrót.
Co to jest Postman i do czego służy?
Kto nie słyszał o Postmanie? 😉
Postman jest platformą do tworzenia, dokumentowania i testowania API(Application Programming Interface). Dzięki przyjaznemu interfejsowi umożliwia łatwe współdzielenie API oraz zbiorów testów i żądań do serwera. Ponadto Postman oferuje automatyczne testy, mockownaie API (patrz akapit serwery MOCK), monitorowanie wydajności testowanych serwerów, a także debugowanie. Znajdziemy tutaj też narzędzia wspierające pracę w zespole. Przykładowo współdzielony workspace, który pozwala efektywnie dopasowywać np. testy do zmieniającego się oprogramowania na serwerze.
Jakie są wersje Postmana?
Obecnie Postman występuje w dwóch wersjach:
- Jako aplikacja przeglądarkowa
- Aplikacja desktopowa (Windows, Mac, Linux)
Zasadniczo nie ma różnic pomiędzy wersjami jeśli chodzi o dostępne funkcje i dane na koncie użytkownika. Osobiście preferuję korzystanie z aplikacji desktopowej, tak aby móc ją łatwo znaleźć na pasku zadań. Podejrzewam, że aplikacja webowa może być nieco mniej wydajna, ponieważ jest ograniczana przeglądarką, na której się zalogowaliśmy.
Ile kosztuje Postman?
Postman umożliwia darmową rejestrację oraz nieograniczony czasowo plan dla darmowego konta. Dostępne są też odpłatne dodatkowe pakiety Basic i Professional, odpowiednio za 19$ i 39$ miesięcznie (dane na luty 2024). Szczegółowe informacje dotyczące cen i pakietów znajdziesz tutaj: https://www.postman.com/pricing .
W ramach darmowego planu otrzymujemy m.in.:
- Klienta API, w którym pisze się testy.
- Api Builder, czyli program do pisania własnego API.
- Aż 1000 automatycznych wywołań do sewerów MOCK, API Postmana czy dowolnego innego publicznie dostępnego API miesięcznie. (Przez automatyczne wywołania mam tu na myśli wykonywanie żądania poza udziałem Twojego komputera, np. przez zdalny harmonogram).
- Dowolna ilość Workspace’ów, kolekcji i przechowywanych żądań.
- 1 Dzień na przywrócenie omyłkowo usuniętych kolekcji.
- Możliwość współdzielenia workspace’u z 2 innymi osobami (łącznie 3 os. zespół).
Składowe Postmana
Workspace
Workspace najprościej przyrównać do typowego projektu, w którym w uporządkowany sposób przechowujemy dane i wyniki naszych działań. Znajdziemy tutaj informacje o dostępnych kolekcjach, a także ogólne przeznaczenie tego workspace’u.
Postman wyróżnia 4 typy workspace’u:
- Personal – osobisty worksace, który jest widoczny tylko dla autora.
- Private – prywatny workspace, który jest widoczny dla autora oraz wszystkich osób, którym je udostępni.
- Team – zespołowy workspace, pozwala na dzielenie projektu z innymi uczestnikami i zarządzanie nim zespołowo.
- Public – publiczny workspace, który jest widoczny dla wszystkich na świecie.

Kolekcja
Kolekcje pozwalają na grupowanie żądań zawierających różne metody (takie jak GET, POST, DELETE itd.) i organizowanie ich w katalogi oraz podkatalogi. Każdą kolekcję możesz wyeksportować do pliku pod warunkiem, że nie jest ona składową Workspace’u zespołowego.

Request
Request, inaczej żądanie jest podstawą testów w Postmanie. Zawiera niezbędne informacje potrzebne do poprawnej komunikacji z serwerem API, takie jak:
- Typ żądania (GET, POST, DELETE, itd…).
- Adres URL serwera.
- Body, inaczej ciało metody zawierające np. potrzebne dane w formie pliku .json.
- Headery, niezdbędne do komunikacji z serwerem jak np. host, origin.
- Opcjonalnie może też zawierać tzw. queryParams, testy, kod do wykonania przed i po żądaniu.
Środowiska i zmienne
Environments są to zbiory zmiennych, które możesz przechowywać dla swojego Workspace’u. Każde środowisko powinno posiadać unikatową nazwę i może przechowywać dowolną ilość zmiennych oraz ich wartości. Dzięki takiemu rozwiązaniu można np. trzymać dane do logowania i specyficzne identyfikatory (IDki) zasobów właściwe dla danego środowiska. W rezultacie możesz bardzo łatwo powtarzać te same testy na różnych środowiskach poprzez szybkie przełączanie się pomiędzy środowiskami (przycisk na zasadzie dropdownu z wyborem środowiska).
Jeśli chodzi o zmienne to w Postmanie oprócz zmiennych środowiskowych znajdziesz też zmienne globalne oraz zmienne dla kolekcji. Więcej o zmiennych znajdziesz tutaj.

Serwery MOCK
Postman umożliwia tworzenie tzw. serwerów typu mock wraz z ich testowaniem. Zadaniem takiego serwera jest symulowanie zachowania prawdziwego API poprzez akceptowanie ściśle określonych żądań i przesyłania na nie odpowiedzi. Jest to ciekawa opcja dla osób, które chciałyby przećwiczyć pisanie.
Czym się różni serwer MOCK od zwykłego serwera?
- nie wysyła żądań do prawdziwego serwera, tylko do atrapy serwera, przez co czas odpowiedzi jest niemal zerowy i zawsze dostajemy tą samą predefiniowane odpowiedź.
- może to być pomocne jak byśmy chcieli sprawdzić co się stanie jak dostaniemy odpowiedź 400 itp bez ingerowania w serwer prawdziwy.
- nie marnuje się zasobów prawdziwego serwera.
- nie trzeba się martwić o wprowadzane dane, które wpłyną na stan bazy danych lub systemu.
Więcej informacji o stawianiu Mock serwera w postmanie możesz znaleźć tutaj: https://learning.postman.com/docs/designing-and-developing-your-api/mocking-data/setting-up-mock/
Praca z Postmanem
Z perspektywy testera oprogramowania praca z Postmanem skupia się na pisaniu testów weryfikujących dane przychodzące z serwera. Istnieje też możliwość manualnego sprawdzenia, ale nie jest to zbyt efektywne.
Testy w Postmanie
Testy w Postmanie pisze się w uproszczonym języku JavaScript. Każdy test stanowi funkcje Javascriptową, która z zasady robi ‘coś’. Przykładowo może sprawdzać czy kod odpowiedzi ma właściwy numer albo czy w odpowiedzi pojawił się pożądany nagłówek (header), a nawet czy odpowiedź została przetworzona w zadanym czasie (np. mniej niż 300 ms). Postman dostarcza tutaj sporo funkcji, które pozwalają na łatwe definiowanie oczekiwanych warunków czy wyłuskanie odpowiedniej informacji.
Na poniższym obrazku możesz zobaczyć 2 przykładowe testy. Pierwszy weryfikuje status odpowiedzi. Natomiast drugi sprawdza, że w odpowiedzi z serwera w postaci pliku JSON znalazł się tytuł poszukiwanej książki i zapisuje jego kod ISBN na potrzeby dalszych testów.

Przydatne funkcje
Snippety
Ogromną pomocą przy pisaniu testów, szczególnie na początku są Snippety. Są to gotowe fragmenty kodu, które możemy nanieść do naszego zbioru testów. Znajdziemy tu gotowe testy m.in. na:
- Status odpowiedzi 200 (wszystko ok).
- Sprawdzenie, że podany ciąg znaków pojawił się w odpowiedzi.
- Sprawdzenie, że zadany atrybut JSONa ma odpowiednią wartość.
- … Oraz wiele innych
Aby skorzystać z snippetu wystarczy go po prostu kliknąć z menu wyboru, a następnie uzupełnić opis lub ewentualnie sprecyzować nasze oczekiwania.

PostBot
Gdyby to wciąż było za mało, to Postman posiada wbudowany odpowiednik Chatu GPT, który bardzo chętnie pomoże za Ciebie napisać dowolny test jaki Ci przyjdzie na myśl. Dodatkowo możesz też na niego liczyć, gdybyś popełnił jakiś błąd czy popsuł składnię. Pamiętaj proszę, że na ten moment nie jest to złoty graal i może mu się zdarzyć jakaś większa/mniejsza wtopa. Warto więc pilnować wygenerowanego kodu i pewnie podstawowa znajomość JavaScriptu będzie tu na plus dla piszącego.

Monitoring API
Kolejną wartą odnotowania funkcją Postmana jest monitoring API. Polega to na tym, że dla wybranej przez siebie kolekcji definiujesz, że chcesz ją wykonywać np. codziennie o godzinie 9 rano. Następnie, zupełnie bez Twojego udziału, Postman będzie wykonywał kolekcje z przekazanymi przez Ciebie parametrami codziennie np. o 9 rano. NatomiastTy będziesz mógł przeglądać rezultaty tych wykonań na ekranu monitoringu w swojej aplikacji. Istnieje nawet opcja, aby otrzymywać mailowe powiadomienia kiedy tylko któryś z przebiegów kolekcji zakończy się porażką.

Minusy Postmana
Ograniczenie zespołu do 3 osób
Choć sam Postman jest bardzo dobrą aplikację z świetną dokumentacją i ogromną społecznością to jak każdy produkt ma on swoje wady.
Korzystając z darmowego planu można jedynie pracować wspólnie na 1 workspace w max 3 osobowym zespole. Dodatkowo minusem jest, że gdy przeoczysz tę informację i potem zdecydujesz się np. przenieść kolekcje gdzieś indziej, to niestety nie będziesz mógł jej wyeksportować tak jak zrobiłbyś to na prywatnym/osobistym workspacie.
Konieczność zalogowania i udostępnienia swoich testów do serwera
Obecnie Postman wymaga autoryzacji do konta w celu korzystania z Workspace’ów. Niestety nie da się praktycznie z nich nie korzystać. W związku z tym wszystkie żądania, kolekcje, opisy API, które utworzysz znajdą się na zdalnym serwerze Postmana. Jest to niewątpliwie zaleta, ponieważ możesz korzystać z tych danych na dowolnych urządzeniach. Natomiast minusem jest to, że będą tam też dane dotyczące Twojego projektu, których być może nie powinieneś udostępniać…
Podsumowanie
Reasumując:
- Postman umożliwia tworzenie, opisywanie oraz testowanie API.
- Podstawą Postmana jest Workspace, który jest projektem, w którym przechowujesz wszystkie swoje żądania i testy w formie kolekcji.
- Masz do wyboru aplikację desktopową lub przeglądarkową i obie mają te same funkcje.
- Wiesz jakie są ograniczenia wersji darmowej i jak kształtują się ceny za płatne plany w Postmanie.
- Masz ogólny obraz tego jak wygląda praca z Postmanem oczami testera.
- Wiesz jakie są wady Postmana i czy możesz je zaakceptować.
Jeśli podobał Ci się artykuł to zapraszam na facebooka, gdzie pojawiają się również nowe materiały,a jeśli tego jeszcze nie zrobiłeś to dopisz się do listy subskrybentów, aby nie ominęły Cię kolejne artykuły!
Pozdrawiam!
Piotr
0 komentarzy