Postman – Mock Serwer

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.

Darmowy kurs Visual Studio

Pracując z setkami programistów, zauważyłem, że większość osób nie pracuje efektywnie w Visual Studio. W skrajnych przypadkach korzystali z kopiowania z wykorzystaniem menu Edit. Wiem, że to dziwne, ale naprawdę niektórzy tak pracują. Dlatego postanowiłem stworzyć kurs Visual Studio – aby pomóc koleżankom i kolegom w efektywniejszej pracy.

Przygotowałem 30 lekcji e-mail, w których pokażę Ci, w jaki sposób pracować efektywniej i szybciej w Visual Studio. Poznasz dodatki, bez których nie wyobrażam sobie pracy w tym IDE.

Po więcej informacji zapraszam na dedykowaną stronę kursu: Darmowy Kurs Visual Studio.

Quiz C#

Ostatnio przygotowałem również quiz C#, w którym możesz sprawdzić swoją wiedzę. Podejmiesz wyzwanie?

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):

Dodanie przykładu odpowiedzi w postman na podstawie realnej odpowiedzi

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:

Zapisanie przykładu odpowiedzi

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):

Tworzenie Mock Serwera w Postmanie

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).

Konfiguracja Mock Serwera

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):

Podsumowanie utworzonego mock serwera

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:

Środowisko z Mock Serwerem

Po zmianie środowiska (punkt 1) i wykonaniu żądania w odpowiedzi, widać, że w jej treści mamy zmienioną wartość (punkt 2):

Odpowiedz z Mock Serwera

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):

Tworzenie Mock Serwera od zera

W kolejnym oknie wybieramy „Create a new collection” (punkt 1). Następnie w tabelce dodajemy kolejne żądania (punkt 2):

Dodanie żądań do Mock Servera

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?

Szkolenie Automatyczne testy w .NET 5

SzkolenieAutomatyczne testy w .NET 5

Zainteresował Ciebie ten temat? A może chcesz więcej? Jak tak to zapraszam na moje autorskie szkolenie o automatycznych testach w .NET..

2 thoughts on “Postman – Mock Serwer

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.