advanced scripting complex testing workflows postman
Lær om Postman Advanced Scripting for komplekse tester av arbeidsflyter:
I denne opplæringen vil vi se noen grunnleggende eksempler på bruk av Advanced Scripting med Postman, som gjør det mulig for oss å kjøre komplekse testarbeidsflyter.
Vi vil diskutere eksempler som å overføre data fra en forespørsel til en annen, forespørsel om sammenkobling, dvs. kontrollere utføringsrekkefølgen for forespørslene i Postmann-samlingen, etc.
hvordan vise swf-filer på pc
=> Les gjennom The Easy Postman Training Series.
Hva du vil lære:
- Overføring av data mellom forespørsler i postbud
- Be om lenking i postbud
- Avansert arbeidsflytketting med postbud
- Viktige tips
- Konklusjon
- Anbefalt lesing
Overføring av data mellom forespørsler i postbud
Overføring av data mellom forespørsler er en utvidelse av bruk av forskjellige typer Postman-variabler. Det er ikke veldig uvanlig hvor en API-forespørsel avhenger av data fra svaret fra den forrige forespørselen.
For å bygge en slik type evner ved hjelp av Postman, kan vi ganske enkelt bruke Postman-variabler for å angi verdien avhengig av svaret som ble mottatt fra forrige eller forrige forespørsel.
Her er en videoopplæring:
La oss se på et eksempel for å illustrere dette.
Vi bruker samme API https://reqres.in med sine 2 endepunkter, dvs. registrer bruker og få brukerinformasjon.
Vi vil bruke verdien av bruker-ID-en som returneres fra det registrerende endepunktet og bruke den til å få metoden med brukerdetaljer. Dette oppnås ved å lagre userId-verdien i en miljøvariabel og bruke den miljøvariabelen i den påfølgende forespørselen.
Vær oppmerksom på at alle slike skript vil være en del av 'Tester' -fanen i Postman-forespørsel om byggekonsoll.
La oss se hvordan skriptet vil se ut:
#1) For Register-brukerens endepunkt, vil svaret til dette API-et se ut som vist nedenfor.
{ 'id': 4, 'token': 'QpwL5tke4Pnpja7X4' }
Nå, for å utføre GET-forespørselen ved hjelp av bruker-ID fra svaret, må vi få ID-verdien fra svaret ovenfor. Vi bruker skriptet nedenfor for å lagre verdien av id-en fra denne JSON i en miljøvariabel som heter bruker-ID.
var jsonData = pm.response.json(); pm.environment.set('userId',jsonData.id)
Med skriptet ovenfor lagres verdien av ID-en nå i userId-miljøvariabelen, og det samme kan brukes mens du utfører sluttpunktet for GET-brukerforespørsel.
#to) Dermed vil GET-brukerforespørselen se ut som vist nedenfor.
https://reqres.in/api/users/{(userId}}
Når den første forespørselen er utført, vil den hente verdien av UserID fra svaret og oppdatere verdien til miljøvariabelen, slik at den kan brukes i de andre forespørslene.
Be om lenking i postbud
La oss først prøve å forstå en grunnleggende brukstilfelle av Request chaining, og deretter vil vi gå nærmere inn på hvordan vi kan oppnå Request chaining ved hjelp av Postman.
Tenk på et scenario av påloggingsflyten til et e-handelssted og valider den påloggede brukeren. Nå for at en bruker skal logge på, må han eller hun først være registrert på nettstedet, og bare da vil de kunne logge på. Det er rekkefølgen det faktiske nettstedet til mobilappen utfører API-anropene.
Se på det fra et integrasjonstestperspektiv. For en API-test må vi først:
- Ring registreringsendepunktet til API-et for at brukeren skal kunne registrere seg.
- Ring deretter innloggingsendepunktet og valider detaljene til den påloggede brukeren.
Med Postman er det ikke rett frem å kontrollere rekkefølgen på utførelsen av forespørselen. Standard utførelsesordre er fra topp til bunn, dvs. rekkefølgen som forespørsler deklareres eller opprettes i Postmann-samlingen.
Forespørsel om sammenheng eller rekkefølgen for utførelse av forespørsel endres ved å bruke følgende skript:
postman.setNextRequest({{RequestName}});
Det er viktig å merke seg her at dette Request chaining script må legges til scriptet for forespørsel eller scriptet etter forespørsel (eller testfanen i Postman-forespørselsbyggeren) som utløser arbeidsflyten når forespørselen under utførelse er fullført.
Her er {{RequestName}} det faktiske forespørselsnavnet som er konfigurert eller satt i Postmann-samlingen.
La oss konfigurere en Postman-samling med fire forskjellige forespørsler for å illustrere Request chaining-konseptet. Opprett en ny samling med 4 forespørsler (Vi vil bruke samme API https://reqres.in for å illustrere dette).
De fire forespørslene i samlingen vil være som nedenfor:
# 1) POST be om å registrere brukeren ( https://reqres.in/api/register ) med eksempel på JSON-kropp med felt som har e-post og passord som nedenfor.
{ 'email': 'eve.holt@reqres.in', 'password': 'pistol' }
#to) POST-forespørsel med påloggingsendepunkt ( https://reqres.in/api/login ) med samme anmodningsorgan som ovenfor.
# 3) FÅ forespørsel med bruker-ID 4.
Arbeidsflyten vi vil prøve å oppnå er:
Registrer (POST) -> Brukerdetaljer (GET) -> Logg inn (POST)
Uansett hvordan disse forespørslene er konfigurert, oppretter vi en arbeidsflyt for å få dem utført i denne rekkefølgen.
hvor du kan få virtual reality-videoer
Vær oppmerksom på at forespørslene heter henholdsvis Register User, Get User og Login User. Det er viktig å ha disse forespørselsnavnene nøyaktig og riktig spesifisert i skriptet, ellers vil arbeidsflyten bli sittende fast.
La oss se hvordan manusene ser ut nå.
#1) POST-forespørsel om registrering.
postman.setNextRequest('Login User');
#to) POST-forespørsel om å logge på.
postman.setNextRequest('Get User');
# 3) FÅ forespørsel om å få brukerinformasjon. Det er viktig her at vi ikke vil at noe skal skje etter denne forespørselen. Hvis vi ikke legger til noe arbeidsflytskript her, er Postmann-samlingen designet for å gjenoppta neste forespørsel i logisk eller standard rekkefølge.
Anta altså at den opprinnelige bestillingsrekkefølgen er Registrer deg, få bruker og Logg Inn og arbeidsflyten vår er på Få bruker ettersom kontrollen ikke vet hvilken forespørsel om å gå videre, vil den gå til neste logiske forespørsel Logg Inn og vil til slutt resultere i en uendelig løkke.
For å forhindre en slik situasjon er det nyttig å avslutte arbeidsflyten ved hjelp av,
postman.setNextRequest(null)
Når det ovennevnte skriptet oppstår under en samlingskjøring, vil arbeidsflytutførelsen stoppe og samlingskjøreren avsluttes.
I tilfeller der det er sirkulære referanser til neste forespørsel, vil samlingsløperen bli sittende fast i en uendelig løkke og forårsake minnelekkasje før eller senere.
Vær oppmerksom på at for å utføre arbeidsflyten, må du utføre den første eller startforespørselen manuelt, legg ut den, den vil følge arbeidsflyten som definert i manusene etter forespørsel.
Med andre ord, den første forespørselen som må kjøres som en del av arbeidsflyten, bør også være den første forespørselen i samlingen eller samlingsmappen, slik at utførelsen av arbeidsflyten starter med den første forespørselen, som også er den første forespørselen fra arbeidsflyten .
Avansert arbeidsflytketting med postbud
Ovennevnte eksempel som vi diskuterte, er mer en lineær arbeidsflyt der vi nettopp konfigurerte arbeidsflyten mellom et sett med forespørsler i samme samling. Den samme teknikken kan også brukes til å løpe en forespørsel flere ganger basert på noen svarverdier eller miljøvariabler.
Vurder integrasjonstest for en handlekurv-app, der du må teste for et scenario der en bruker søker etter et produkt og legger det til i handlekurven og må utføre den samme operasjonen 5 ganger, dvs. til handlekurven har totalt 5 varer og deretter endelig kassen.
Så hvis du skulle skrive en lineær flyt for denne typen test, ville du ha gjentatt individuelle forespørsler i samlingen, og i hovedsak ville samlingen ha 5 forespørsler om å søke etter en vare, og 5 forespørsler om å legge til produkter i handlekurven og 1 forespørsel om kassen.
Med denne arbeidsflytfunksjonaliteten kan vi unngå å gjenta de samme forespørslene i samlingen og bruke arbeidsflytene til å løpe mellom forespørslene.
La oss se en strømningssekvens for et slikt scenario (da kan dette brukes / opprettes ved hjelp av Postman-arbeidsflyt sammen med en kombinasjon av miljøvariabler).
Det er også et interessant eksempel på å bruke Postman arbeidsflyt til å lage en Spotify-spilleliste. Henvise her for mer informasjon.
Viktige tips
Nedenfor er noen viktige tips å huske når du arbeider med å bygge arbeidsflyter.
- Mens du kjører en samling hvis få forespørsler ikke har postment.setNextRequest, blir kjøringen fortsatt i standard rekkefølge for samling. Derfor anbefales det generelt å ha Postman.setNextRequest i enten alle forespørsler eller i ingen av dem.
- Når det kjøres med samlinger, hvis det er mapper i en samling, kan Postman.setNextRequest brukes bare for forespørsler som tilhører samme mappe, dvs. valg av forespørsel kan ikke gå utover gjeldende mappe.
- Postman.setNextRequest er den siste uttalelsen som blir utført i skriptet etter forespørsel eller forhåndsforespørsel, uavhengig av hvor og hvilken rekkefølge det er nevnt.
I tilfelle flere verdier funnet for setNextRequest, er den som er nevnt i det siste effektiv.
Konklusjon
I denne opplæringen dekket vi få avanserte skriptemner som å kombinere miljø og lokale variabler for å overføre data mellom forskjellige forespørsler i Postboken, og hvordan kan vi kontrollere kjøringsrekkefølgen for forespørslene ved hjelp av Postman Request-kjetting som tillater avanserte funksjoner som looping og forgrening.
Det er en kul funksjon å etterligne oppførselen til et program på den måten det vil samhandle med forskjellige API-er, og det er nyttig å skrive arbeidsflyter fra slutt til slutt ved hjelp av integrasjonstester med API-sluttpunkter.
=> Ta en titt på den perfekte treningsguiden for postbud her.
Anbefalt lesing
- Beste verktøy for testing av programvare 2021 (QA Test Automation Tools)
- Testing Primer eBook Download
- POSTMAN-veiledning: API-testing ved hjelp av POSTMAN
- Nettjenestetestets ytelsestesting ved bruk av LoadRunner VuGen Scripting
- Hvordan bruke Postman til å teste forskjellige API-formater?
- Lastetesting med HP LoadRunner-veiledninger
- Forskjellen mellom stasjonær, klientservertesting og nettesting
- Er du en ny eller avansert tester? Finn fra dette kortspillet