Postman – import żądania z DevTools

Wprowadzenie

Postman jest narzędziem, które wykorzystuję codziennie i bez którego nie wyobrażam sobie pracy. Dzisiaj chciałbym Ci pokazać, w jaki sposób można zaimportować żądanie z DevTools (Chrome) do Postmana, aby ułatwić sobie pracę i testowanie aplikacji. W szczególności, gdy jakieś żądanie powoduje błąd (np. 500).

Dodatkowo, gdy nauczymy naszych testerów, aby do zadań wrzucali tak wyeksportowane żądania, to praca w szczególności nad problemami staje dużo łatwiejsza i szybsza. Na ogół nie musimy przechodzić całego scenariusza, aby odtworzyć problem. Wystarczy tylko zaimportować żądanie i można już działać.

Export żądania

Wcześniej czy później w naszej aplikacji pojawi się błąd. A to serwer zwraca błąd 500, a to programiści źle zrozumieli wymagania i aplikacja zachowuje się nie tak, jak powinna.

Na potrzeby dzisiejszego przykładu utworzyłem nową aplikację webową w Visual Studio (.NET Core Web Api + Angular + uwierzytelnienie), w której wprowadziłem błąd. W efekcie w pewnym momencie działania aplikacji jedno z żądań kończy się statusem 500:

Błąd 500 w testowej aplikacji

Oczywiście pracując nad tym problemem, można za każdym razem przeklikiwać aplikację, aby odtwarzać błąd. Ale dużo fajniejszą opcją jest wyeksportowanie i import problematycznego żądania do Postmana. Dzięki czemu później możemy wykonywać tylko to jedno żądanie. Zyskujemy na czasie i szybciej możemy rozwiązać problem.

Dodatkowo plusem takiego wyeksportowanego żądania jest to, że z czasem możemy również dodać je do listy żądań wykonywanych podczas wdrażania aplikacji lub nocnych buildów (tak jak to opisywałem we wpisie o automatycznym wykonywaniu testów Postmana), dzięki czemu możemy szybciej wyłapać błędy regresji.

Eksport żądania jest bardzo prosty. Wystarczy kliknąć na nie prawym klawiszem myszy. Następnie wybrać opcję Copy i później Copy as cURL (bash):

Kopiowanie żądania z DevTools

W efekcie skopiujemy coś takiego:

curl 'https://localhost:44339/weatherforecast' \
-H 'authority: localhost:44339' \
-H 'accept: application/json, text/plain, */*' \
-H 'authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkRldmVsb3BtZW50IiwidHlwIjoiYXQrand0In0.eyJuYmYiOjE2MDIwNDM0NjgsImV4cCI6MTYwMjA0NzA2OCwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NDQzMzkiLCJhdWQiOiJXZWJBcHBsaWNhdGlvbjE2QVBJIiwiY2xpZW50X2lkIjoiV2ViQXBwbGljYXRpb24xNiIsInN1YiI6IjBkNThjOWZlLTlkNmQtNDUzYi05NjYwLTRiODNkNTIzZWJmYSIsImF1dGhfdGltZSI6MTYwMjA0MzQ2MiwiaWRwIjoibG9jYWwiLCJzY29wZSI6WyJvcGVuaWQiLCJwcm9maWxlIiwiV2ViQXBwbGljYXRpb24xNkFQSSJdLCJhbXIiOlsicHdkIl19.YLh2OffyTtW2P3J-T9YyiwuWb-YSUGoWB4LeaAFgQxkHw9HopNqjo09e5BG9l-kU18EqDl9jnvnHb2SpqjDuZJiAQ6xy2D8viHiLkyqUMy30lSVh_2VtUfPLgxMP0q8hTWPMix5OiKDTF11i-OlbvPY1qqVIKX398uU3jxMmA8ADFC0nn6cy5M01KPyAiUO2LzdZlMvAdOCMRB98463lApoKTKfaySCLSbzSOZihsqGkvK9rwMN9y5bD8H0uLx3I_5_E3jvWIhhA1ACZlcW0QWZVkMbN-a6V8hY11uYggcfxwAKGH59PdbD0qUvtWihxuCm0uZ2Yv826Jdj8bTucbA' \
-H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36' \
-H 'sec-fetch-site: same-origin' \
-H 'sec-fetch-mode: cors' \
-H 'sec-fetch-dest: empty' \
-H 'referer: https://localhost:44339/fetch-data' \
-H 'accept-language: pl' \
-H 'cookie: .AspNetCore.Antiforgery.jqUYYlXpeZc=CfDJ8NZO8_kWbotGmLvBdCuyHrPmVCtrDIDiiybPjImVnop71XRzPS1f7MokB_KMb20yHMLc5lfF4pL15tqwr2960qc7QUnhK7VolzpP7ub_mJntxzS0rGhsfUcD0epcAPAiD_-R6b6KmQf4GLf1cK6atKs; .AspNetCore.Antiforgery.CNK0KkBWJV4=CfDJ8NZO8_kWbotGmLvBdCuyHrP7o0g4ohu5FEqYG4__YK4qTeQ-6m3HfhhlMJ-WKOZm5vyv0wHc1E4go8fXsLHWTrEygMwVcpRet_ixbErBv-70D44JhxMZJGuDPv9jfO2aZZ66il5EzGocmpTJcxC2evg; idsrv.session=NjuN6B-SuuKE0XWhVkPAQg; .AspNetCore.Mvc.CookieTempDataProvider=CfDJ8NZO8_kWbotGmLvBdCuyHrM0CsGFDk_25lmKjNjN3JeHFJ9yH5vvt4o7KUhoSGALtzwY1J6XmOfpUccfvufU12jpO_rg5xftJ1PEppjdiaJn2K_rdtiF33J3-IGl1QCYyiii3aDqt01HMtW4sYIdWUqgPsxiXdEP0upPZ_e37EWADaIuyhyeCSXmdtZ9lgblIQ; .AspNetCore.Identity.Application=CfDJ8NZO8_kWbotGmLvBdCuyHrNk7rfdXkY8w37ll6Jd98UCDNyCInQRrquTRH8YtLRAudyvwa452Kov4WIjnMf-vdi64tGJpHSDNF2pyIxyeJifCbWbZ1la3xMFTgtXNQZPD2XE73zJAQRSTlgkVJmaGMIngl-3vRSlpvG0V_bw3z5VxJp8ymoMSWPweSVUPqle0GHsGDiNywLJVbt9jp_LSQoIrBgOp1AWId6fd-keCJp8bqsrIJ4mBB4rMtm6bSWDsfh1fPccvaso5jefX_aRXuy8fGLZvrKpDxCl4l4DiD16KZAkUG7EIpLOpSR8EL7VOhkPQDnOrORStjmv3lAsl0Sc5BGku5KN5ewqBiUOeVHNHY8CjY6j068n5upqZP91S294ecrIPVaFaminfzxSA4cuIOdxzvYFh30OIEylUEul9QqG4VgvD4Gu1HuXIOfACjMgkZtDNop7g7ImWCtOpdDyw8ywzqM_7i9xDJp3gKle_3aUSt-1kCr8r7BnKKZTDTXTR2jKKxBT9m01zQ_j4gU-aDAELMANvh7mJBllPgUtxVDWNirA2qOHvFWqBascEsyxyzByvsJ_LvlPC1wh4UXOGeH1Tme0exYEET-y8C0wt63Lr6Ut04Ck2AxysNiLLnMr278IwwTDiaAagrdyeRYj_cRcQLAY2y51nxssUEeHgIldDwXVfyClC1dhP5D05Di78oHAgBngHv0oK8vkCMXRPUBp3Phvpsh8S3gOZSfAgy_Nf6tg-G5LJzMajDKaghMyYxsv_IbdSd6V8zFTaO-3FnaaNkfTVr340HiKS0AstOphKYphl2ZDLIKFAcEqB8NMSxKsBTRQRnkkOM3wEJyzaCLoPXthP40Fkxoz-QEKpscus1-azPxXaNs3kGeY7ui74Ude6inLGniTLBYU_mEShStv0iXTWXzMKqQYM5xa0rSnmCSp-l_5-7r3UW9YBA' \
--compressed
view raw request.txt hosted with ❤ by GitHub

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?

Import żądania do Postmana

Mając już skopiowany request, wystarczy go już tylko zaimportować. Robi się to w podobny sposób jak import żądań z swagger. Czyli klikamy w przycisk Import, później przechodzimy do zakładki Raw text i wklejamy skopiowane żądanie:

Wklejenie skopiowanego żądania do Postmana

Następnie klikamy na przycisk Continue i po chwili widzimy podsumowanie importu, który za chwilę nastąpi:

Podsumowanie importu żądania

Klikamy w przycisk Import i widzimy nowe żądanie w Postmanie. Jest ładnie ustawiony adres oraz wszystkie nagłówki. Możemy teraz wykonać żądanie i sprawdzić, co dzieje się w aplikacji. A następnie naprawić problem:

Zaimportowane żądanie do Postmana

Podsumowanie

Importowanie żądań z DevToolsów (inne przeglądarki niż Chrome mają podobne możliwości) bardzo przyśpiesza proces naprawiania problemów występujących w aplikacji. W szczególności gdy z testerami aplikacji ustalimy, że podejrzane żądania będą dodawali do zgłoszeń.

Dzięki temu unikniemy wielu niepotrzebnych problemów. Na przykład sprawdzamy nie te środowisko, nie tego użytkownika (o ile na przykład skopiowany token jwt jest jeszcze ważny). W efekcie jesteśmy bardziej wydajni w pracy nad problemami.

A Ty importujesz żądania do Postmana z DevToolsów?

Szkolenie Web API w .NET 5

Szkolenie Web API w .NET 5

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

3 thoughts on “Postman – import żądania z DevTools

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.