Wprowadzenie
Postman jest rozbudowanym narzędziem, bez którego nie wyobrażam sobie pracy. Większość kojarzy go jako aplikację do testowania api, ale umożliwia on dużo więcej. W tym wpisie będę chciał pokazać Ci, czym jest Mock Serwer oraz jak z niego skorzystać. Zauważyłem, że dużo osób korzystających na co dzień z Postmana nie wie, że coś takiego jest dostępne. A szkoda, bo są sytuacje, w których Mock Serwer może się przydać.
Po co mi Mock Serwer?
Postmana w większości przypadków kojarzymy z testowaniem api podczas jego tworzenia. Przygotowujemy żądania, organizujemy je w kolekcje, a nawet możemy później na podstawie tego automatycznie testować na api.
Z drugiej strony od czasu do czasu potrzebujemy skorzystać z jakiegoś innego api, szczególnie w dobie mikro/nano serwisów, gdzie może się okazać, że taka usługa nie jest jeszcze gotowa i znamy tylko jej specyfikację. W takiej sytuacji Mock Serwer z Postmana jest bardzo pomocny. Na podstawie zapisanych żądań możemy za pomocą kilku kliknięć postawić serwer, który będzie symulował docelową usługę.
Mock Serwer może również przydać się podczas pracy z istniejącą usługą. Możemy utworzyć serwer na podstawie realnych odpowiedzi i z niego korzystać zamiast właściwej usługi. Przydaje się to szczególnie wtedy, gdy nie chcemy zrobić sobie śmietnika w realnej usłudze, na przykład podczas testów dodawania czegoś do usługi.
Oczywiście tutaj musimy pamiętać, że zawsze ostatecznie należy testować działanie naszych aplikacji na podstawie realnej usługi. Szczególnie, że one się zmieniają i z czasem coś może zacząć działać inaczej.
W wersji darmowej mamy do dyspozycji 1000 żądań do Mock Serwera w ciągu miesiąca. W większości przypadków jest to wartość wystarczająca.
Zapisanie przykładu odpowiedzi
Zanim przejdziemy do postawienie Mock Serwer musimy najpierw przygotować żądania, które będą mockowane. Możemy to zrobić na dwa sposoby. Po pierwsze na podstawie istniejącej usługi, gdzie dodajemy żądanie, wykonujemy je i odpowiedź zapisujemy jako przykład. Drugim sposobem jest utworzenie odpowiedzi od zera.
Pierwszy scenariusz przydaje się, gdy mamy już gotową usługę i chcemy na jej podstawie utworzyć Mock Serwer. Drugie podejście na ogół stosujemy, gdy jeszcze takiej usługi nie mamy.
W tym wpisie posłużę się przykładową usługą z mojego pierwszego wpisu o Postmanie, gdzie wykorzystamy dodatkowo zapisaną kolekcję, którą wtedy utworzyłem.
Zapisanie odpowiedzi na podstawie realnej odpowiedzi jest bardzo proste. Wystarczy po wykonaniu skorzystać z panelu Examples (punkt 1) i tam dodać przykład z użyciem przycisku Add Example (punkt 2):
W nowej zakładce podajemy nazwę odpowiedzi (punkt 1). Tutaj możemy jeszcze zmienić naszą odpowiedz. Dodać do niej coś lub usunąć. W przykładzie zmieniłem nazwę pierwszego produktu (punkt 2), aby pokazać, że to działa:
Możemy mieć wiele zapisanych odpowiedzi, które reprezentują różne scenariusze dla tego samego żądania – na przykład poprawnie zapisane dane lub błąd walidacji. Twórcy Postmana przygotowali szereg reguł określających kiedy i jaka odpowiedź zostanie wykorzystana. Po szczegóły odsyłam do dokumentacji – https://learning.postman.com/docs/designing-and-developing-your-api/mocking-data/matching-algorithm/
Osobiście na ogół staram się, aby dla każdego scenariusza mieć zapisane oddzielne żądanie w kolekcji, dzięki czemu później łatwiej mi do tego wrócić. Wtedy zazwyczaj mam jeden przykład odpowiedzi.
Utworzenie Mock Serwer
Mając już utworzoną kolekcję z przykładami, możemy przejść do tworzenia Mock Serwera. W tym celu klikamy w przycisk „…” przy nazwie kolekcji (punkt 1), a później wybieramy Mock Collection (punkt 2):
W kolejnym widoku możemy skonfigurować działanie Mock Serwera. Po pierwsze nadajemy mu nazwę (punkt 1). Do tego możemy między innymi skonfigurować, czy nasz serwer ma być prywatny (punkt 2, wtedy będziemy musieli dodać nagłówek x-api-key do żądania, aby się uwierzytelnić), czy zasymulować jakieś opóźnienia w działaniu serwera (punkt 3).

Przycisk Create Mock Server (punkt 4 powyżej) tworzy atrapę. Kolejny widok to podsumowanie utworzonego serwera, w którym najważniejszy jest jego adres (punkt 1):
W tym momencie możemy cieszyć się serwerem. W każdej chwili możemy wrócić do jego konfiguracji. Klikamy w strzałkę przy nazwie kolekcji (punkt 1), przechodzimy do zakładki Mocks (punkt 2) i klikamy w przycisk Edit Mock (punkt 3):
W tym miejscu możemy również usunąć Mock Serwer (punkt 4).
Użycie Mock Serwera
Mock Serwer działa, więc można z niego korzystać. W tym celu między innymi tworzę dedykowane środowisko w Postmanie dla Mock Serwera, abym mógł szybko sprawdzić, jak faktycznie działa:
Po zmianie środowiska (punkt 1) i wykonaniu żądania w odpowiedzi, widać, że w jej treści mamy zmienioną wartość (punkt 2):
Czyli Mock Serwer ładnie działa 🙂
Utworzenie Mock Serwera od zera
Mock Serwer możemy również stworzyć od zera, gdy jeszcze nie mamy dostępu do usługi, a jedynie jakiś opis jej działania. W tym celu korzystamy z przycisku New w lewym górnym rogu (punkt 1) i wybieramy Mock Server (punkt 2):
W kolejnym oknie wybieramy „Create a new collection” (punkt 1). Następnie w tabelce dodajemy kolejne żądania (punkt 2):
Tutaj dodaję proste Response Body. Później w każdej chwili mogę przejść do żądania w kolekcji i zmienić odpowiedź na właściwą. Jest to dużo przyjemniejsze niż dodawanie go tutaj.
Kolejne kroki są takie same jak wcześniej. Czyli ekran z konfiguracją i podsumowanie. W efekcie Postman tworzy nową kolekcję (punkt 1) z żądaniami i do każdego dodaje przykład, który możemy zmienić:
Mock Serwer z Postmana to rozbudowane narzędzie. Tutaj pokazałem Ci, w jaki sposób zacząć. Więcej informacji znajdziesz w dokumentacji – https://learning.postman.com/docs/designing-and-developing-your-api/mocking-data/setting-up-mock/
Mam nadzieję, że zainteresowałem Cię tym tematem.
Podsumowanie
Mock Serwer jest bardzo ciekawą funkcjonalnością Postmana. Bardzo ułatwia tworzenie aplikacji, gdy używa ona zewnętrznej usługi, z której musimy skorzystać.
Z drugiej strony zachęcam swoich frontendowców do korzystania z Postmana do mockowania odpowiedzi z serwera, dzięki czemu mogą pracować i testować różne scenariusze bez proszenia o zmiany backendowców.
A co Ty myślisz o Mock Serwerze? Korzystasz? A może znasz coś lepszego i ciekawszego?
Mock serwer to jedna z najważniejszych rzeczy podczas mojej pracy. Uważam, że bez niego byłoby znacznie ciężej.