advanced scripting complex testing workflows postman
Lär dig mer om Postman Advanced Scripting för komplexa testarbetsflöden:
I den här handledningen kommer vi att se några grundläggande exempel på hur man använder Advanced Scripting med Postman som gör det möjligt för oss att köra komplexa testarbetsflöden.
Vi kommer att diskutera exempel som vidarebefordra data från en begäran till en annan, Begär kedjning dvs att styra körningsordningen för förfrågningarna i Postman-samlingen, etc.
hur man skapar en java-applikation i förmörkelse
=> Läs igenom The Easy Postman Training Series.
Vad du kommer att lära dig:
- Skicka data mellan begäranden i brevbäraren
- Begär kedjning i brevbäraren
- Avancerad arbetsflödeskedjning med brevbäraren
- Viktiga tips
- Slutsats
- Rekommenderad läsning
Skicka data mellan begäranden i brevbäraren
Att skicka data mellan förfrågningar är en förlängning av att använda olika typer av Postman-variabler. Det är inte ovanligt att en API-begäran beror på data från den tidigare begärans svar.
För att bygga en sådan typ av funktioner med hjälp av Postman kan vi helt enkelt använda Postman-variabler för att ställa in värdet beroende på svaret som mottogs från föregående eller tidigare förfrågningar.
Här är en videohandledning:
Låt oss titta på ett exempel för att illustrera detta.
Vi kommer att använda samma API https://reqres.in med sina två slutpunkter, dvs. registrera användare och få användarinformation.
Vi kommer att använda värdet på användar-id som returneras från den registrerande slutpunkten och använda det för att få användardetaljmetoden. Detta uppnås genom att lagra userId-värdet i en miljövariabel och använda den miljövariabeln i den efterföljande begäran.
Observera att alla sådana skript kommer att ingå i fliken 'Tester' i Postman-begäran.
Låt oss se hur manuset kommer att se ut:
# 1) För Registrera användarslutpunkt kommer svaret från detta API att se ut som visas nedan.
{ 'id': 4, 'token': 'QpwL5tke4Pnpja7X4' }
Nu, för att utföra GET-begäran med användar-id från svaret, måste vi få id-värdet från ovanstående svar. Vi kommer att använda skriptet nedan för att lagra id-värdet från denna JSON i en miljövariabel med namnet användar ID.
var jsonData = pm.response.json(); pm.environment.set('userId',jsonData.id)
Med ovanstående skript kommer ID-värdet nu att lagras i userId-miljövariabeln och detsamma kan användas när GET-användarbegärans slutpunkt körs.
#två) Således kommer GET-användarförfrågan att se ut som visas nedan.
https://reqres.in/api/users/{(userId}}
När den första begäran har körts hämtar den användar-ID-värdet från svaret och uppdaterar värdet på miljövariabeln så att den kan användas i de andra förfrågningarna.
Begär kedjning i brevbäraren
Låt oss först försöka förstå ett grundläggande användningsfall för Request chaining och sedan kommer vi att gräva vidare i hur vi kan uppnå Request chaining med Postman.
Tänk på ett scenario av inloggningsflödet för en e-handelsplats och validera den inloggade användaren. För att en användare ska kunna logga in måste han eller hon först vara registrerad på webbplatsen och först då kan de logga in. Det är i den ordning den faktiska webbplatsen för mobilappen utför API-samtalen.
Titta på det ur ett integrationstestperspektiv. För ett API-test måste vi först:
- Ring API: ns registreringsändpunkt för att användaren ska kunna registrera sig.
- Ring sedan inloggningens slutpunkt och validera informationen om den inloggade användaren.
Med Postman är det inte enkelt att kontrollera ordningen på begäran. Standardkörningsordern är från topp till botten, dvs. den ordning i vilken förfrågningar deklareras eller skapas i Postman-samlingen.
Begäringskedjning eller ordning för körning av begäran ändras med hjälp av följande skript:
postman.setNextRequest({{RequestName}});
Det är viktigt att notera här att detta Request chaining script måste läggas till i scriptet för pre-begäran eller efter förfrågan (eller testfliken i Postman-begäran) som utlöser arbetsflödet när begäran under körning är klar.
Här är {{RequestName}} det faktiska begäransnamnet som konfigureras eller ställs in i Postman-samlingen.
Låt oss konfigurera en postboksamling med fyra olika förfrågningar för att illustrera begreppet Request chaining. Skapa en ny samling med fyra förfrågningar (vi kommer att använda samma API https://reqres.in för att illustrera detta).
De fyra förfrågningarna i samlingen kommer att vara som nedan:
# 1) POST begäran om att registrera användaren ( https://reqres.in/api/register ) med JSON-exempel med fält som har e-postadress och lösenord enligt nedan.
{ 'email': 'eve.holt@reqres.in', 'password': 'pistol' }
#två) POST-begäran med inloggningsslutpunkt ( https://reqres.in/api/login ) med samma begärande organ som ovan.
# 3) GET-begäran med userID 4.
Arbetsflödet som vi kommer att försöka uppnå är:
Registrera (POST) -> Användarinformation (GET) -> Logga in (POST)
Oavsett hur dessa förfrågningar konfigureras skapar vi ett arbetsflöde för att få dem att köras i den här ordningen.
Observera att förfrågningarna namnges som Register User, Get User respektive Login User. Det är viktigt att dessa begäranamn exakt och korrekt anges i skriptet, annars kommer arbetsflödet att fastna.
Låt oss se hur manusen ser ut nu.
# 1) POST-begäran om registrering.
vad är den bästa e-postservern
postman.setNextRequest('Login User');
#två) POST-begäran om att logga in.
postman.setNextRequest('Get User');
# 3) FÅ begäran för att få användarinformation. Det är viktigt här att vi inte vill att något ska hända efter denna begäran. Om vi inte lägger till något arbetsflödesskript här är Postman-samlingen utformad för att återuppta nästa begäran i den logiska eller standardordern.
Antag alltså att den ursprungliga orderbeställningen i samlingen är Registrera dig, få användare och Logga in och vårt arbetsflöde är på Skaffa användare eftersom kontrollen inte vet vilken begäran att gå nästa, kommer den att gå till nästa logiska begäran som är Logga in och kommer i slutändan att resultera i en oändlig slinga.
För att förhindra en sådan situation är det bra att avsluta arbetsflödet med,
postman.setNextRequest(null)
Närhelst ovanstående skript påträffas under en samlingskörning kommer körningen av arbetsflödet att stoppas och samlingslöparen avslutas.
I de fall där det finns cirkulära referenser till nästa begäran kommer uppsamlingslöparen att fastna i en oändlig slinga och därmed orsaka minnesläckage förr eller senare.
Observera att för att utföra arbetsflödet måste du utföra den första eller startbegäran manuellt, lägg upp det, det kommer att följa arbetsflödet enligt definitionen i efterfrågan.
Med andra ord bör den första begäran som krävs för att köras som en del av arbetsflödet också vara den första begäran i samlings- eller samlingsmappen, så att körningen av arbetsflödet börjar med den första begäran som också är den första begäran från arbetsflödet .
Avancerad arbetsflödeskedjning med brevbäraren
Ovanstående exempel som vi diskuterade är mer av ett linjärt arbetsflöde där vi just konfigurerade arbetsflöde mellan en uppsättning förfrågningar i samma samling. Samma teknik kan också användas för att loopa över en begäran flera gånger baserat på vissa svarsvärden eller miljövariabler.
Överväg integreringstest för en kundvagn-app, där du måste testa för ett scenario där en användare söker efter en produkt och lägger till den i kundvagnen och måste utföra samma operation 5 gånger, dvs. tills vagnen har totalt 5 artiklar och sedan äntligen kassan.
Så om du skulle skriva ett linjärt flöde för denna typ av test skulle du ha upprepat enskilda förfrågningar i samlingen och i huvudsak skulle samlingen ha 5 förfrågningar för att söka efter ett föremål och 5 förfrågningar om att lägga till produkter i kundvagnen och 1 begäran om utcheckning.
Med den här arbetsflödesfunktionen kan vi undvika att upprepa samma förfrågningar i samlingen och använda arbetsflöden för att slinga mellan förfrågningarna.
Låt oss se en flödessekvens för ett sådant scenario (då kan detta användas / skapas med Postman-arbetsflöde tillsammans med en kombination av miljövariabler).
Det finns också ett intressant exempel på att använda Postmans arbetsflöde för att skapa en Spotify-spellista. Hänvisa här för mer information.
Viktiga tips
Nedan följer några viktiga tips att komma ihåg när du arbetar med att bygga arbetsflöden.
- När du kör en samling om få förfrågningar inte har postment.setNextRequest inställt fortsätter körningen i standardordningen för insamling. Således rekommenderas det generellt att ha Postman.setNextRequest i antingen alla förfrågningar eller i ingen av dem.
- När det körs med samlingar, om det finns mappar i en samling, kan Postman.setNextRequest användas bara för förfrågningar som tillhör samma mapp, dvs. begäran kan inte gå längre än den aktuella mappen.
- Postman.setNextRequest är det sista uttalandet som körs i skriptet efter förfrågan eller förförfrågan, oavsett var och vilken ordning det nämns.
När det gäller flera värden som hittats för setNextRequest är den som nämns i det sista effektiv.
Slutsats
I denna handledning behandlade vi några avancerade skriptämnen som att kombinera miljö och lokala variabler för att skicka data mellan olika förfrågningar i Postman och hur kan vi styra körningsordningen för förfrågningarna med hjälp av Postman Request-kedjning som möjliggör avancerade funktioner som looping och förgrening.
Det är en cool funktion för att efterlikna beteendet hos en applikation på det sätt som den skulle interagera med olika API: er och det är bra att skriva arbetsflöden från slut till slut med integreringstester med API-slutpunkter.
=> Kolla in den perfekta träningsguiden för brevbärare här.
Rekommenderad läsning
- Bästa verktyg för testning av programvara 2021 (QA Test Automation Tools)
- Testing Primer eBook Download
- POSTMAN-handledning: API-testning med POSTMAN
- Test av webbtjänstens prestanda med LoadRunner VuGen Scripting
- Hur använder jag Postman för att testa olika API-format?
- Lasttestning med HP LoadRunner-handledning
- Skillnad mellan Desktop, Client Server Testing och Web Testing
- Är du en ny eller avancerad testare? Hitta från detta kortspel