Postman er et av de mest populære verktøyene for utvikling og testing av API-er. Jeg har brukt det siden 2017, og det å lære hvordan man bruker Postman til å teste API-er hjalp meg virkelig med å få fart på testprosessen.
I denne artikkelen skal jeg veilede deg trinn for trinn og vise hvordan du validerer API-forespørsler ved hjelp av Postman. Når du er ferdig, bør du kunne lage dine egne automatiserte tester.
Men før vi går inn i selve Postman-veiledningen, skal jeg forklare noen ting om API-er.
Hva er API-er?

API er en forkortelse for applikasjonsprogrammeringsgrensesnitt. Fortsatt ikke så tydelig, eller hva? 😅 La meg utdype:
API er et grensesnitt som definerer hvordan skript eller programmer kan kommunisere med en applikasjon eller tjeneste. De fungerer ved å dele data og informasjon mellom applikasjoner, systemer og enheter.
Det vanligste API-et i dag er REST API, som jeg kommer til å bruke videre i denne Postman-veiledningen for API-testing. REST er også et akronym for REpresentasjonell Stilstandsoverføring. REST API-er bygger på prinsipper som klient-tjener-kommunikasjon, ensartede grensesnitt for kommunikasjon mellom systemer, tilstandsløse operasjoner og mer.
Kommunikasjonen skjer gjennom HTTP-forespørsler og -svar.
Oppbygningen av HTTP-forespørsler
HTTP-forespørsler har fire hovedkomponenter:
- URL-en
- Endepunktet, som representerer den spesifikke ressursen vi ønsker å samhandle med.
- HTTP-metoden – HTTP-metoder forteller serveren om vi prøver å hente informasjon, eller hvilke typer endringer vi ønsker at applikasjonen skal utføre. I dag skal vi gå gjennom de grunnleggende CRUD-operasjonene:
- Opprette: POST
- Lese: GET
- Oppdatere: PUT
- Slette: DELETE
- Forespørselskroppen. Denne er valgfri, avhengig av hvilken metode vi bruker. I denne Postman-veiledningen bruker vi formatet JSON (JavaScript-objektnotasjon).
Have an account? Log In
HTTP-svarkoder
Når vi sender en HTTP-forespørsel, utsteder serveren en svarkode som forteller oss om forespørselen var vellykket eller ikke. De viktigste kategoriene av HTTP-svarkoder er:
- 1xx: informasjonsrespons
- 2xx: vellykket
- 3xx: omdirigering
- 4xx: klientfeil
- 5xx: serverfeil
Jeg liker virkelig denne visuelle fremstillingen fra Julia Evans:

Du finner en komplett liste over svarkodene her, eller hvis du foretrekker at de forklares av katter, her 🐱👓
Greit, jeg tror vi har dekket nok til å komme i gang med selve veiledningen – nå skal vi se hvordan man bruker Postman til å teste API-er!
Slik bruker du Postman til å teste API-er (trinn for trinn)
Du kan bruke Postman på to måter: direkte fra nettleseren (du må opprette en konto for å kunne gjøre dette), eller installert på din lokale maskin – det er valgfritt å ha en konto for dette alternativet.
Jeg foretrekker å ha det installert, ganske enkelt fordi jeg ikke liker rotet med for mange åpne nettleserfaner, så det er dette jeg kommer til å bruke videre.
Dette er en veiledning for nybegynnere, så jeg kommer til å bruke noen enkle testtilfeller for å demonstrere hvordan man bruker Postman til å teste et API. Demoappen jeg skal bruke, er Swagger Petstore, og scenarioet jeg skal teste, er:
- Legg til et nytt kjæledyr i butikken med statusen ‘pending’
- Oppdater statusen til kjæledyret til ‘available’
- Valider at informasjonen om kjæledyret ble oppdatert
- Slett kjæledyret
- Bekreft at kjæledyret ble slettet
OK, la oss sette i gang!

Den første HTTP-forespørselen i Postman
Postman gjør det mulig å gruppere API-forespørsler i samlinger. Dette er grupper med relaterte HTTP-forespørsler. Opprett en ny samling for alle de følgende forespørslene du skal bruke i testene:

OK, nå har du altså en tom samling.
Klikk på URL-en «Legg til en forespørsel» eller på «+»-knappen i listen over faner:

Swagger UI-siden fungerer som dokumentasjon for API-et.
Ressursen (endepunktet) du trenger for å opprette et nytt kjæledyr, er «/pet», og HTTP-metoden er POST.
I modellfanen kan du se objektet du må sende som forespørselskroppen, samt datatypene for hver verdi:

Vi bruker JSON-formatet til å sende forespørselskroppen, så aktiver radioknappen «rå» og velg JSON fra rullegardinmenyen.
Forespørselskroppen bør se omtrent slik ut:
{
"id": 0,
"category": {
"id": 0,
"name": "dog"
},
"name": "Spike",
"photoUrls": [
"string"
],
"tags": [
{
"id": 0,
"name": "bulldog"
}
],
"status": "pending"
}
Du kan enkelt legge til resten av detaljene i den nye forespørselsfanen:

For å opprette dette nye kjæledyret på serveren klikker du på Send-knappen.
Hvis alt går bra, mottar du et vellykket svar, og responskroppen vil inneholde informasjon om kjæledyret, inkludert ID-en.
Vi trenger å bruke denne videre:

Neste trinn er å oppdatere informasjonen om kjæledyret.
For å gjøre dette må du åpne den samme ressursen, «/pet», men sende en forespørsel med HTTP-metoden PUT.
Du kan se hvilken informasjon du må sende i forespørselskroppen:

Opprett altså en ny forespørsel med den samme forespørsels-URL-en, velg PUT-metoden, og send det samme forespørselsinnholdet, bortsett fra at du endrer statusverdien til «available» og bruker ID-en fra det forrige svaret:
{
"id": <skriv inn ID-en her>,
"category": {
"id": 0,
"name": "dog"
},
"name": "Spike",
"photoUrls": [
"string"
],
"tags": [
{
"id": 0,
"name": "bulldog"
}
],
"status": "available"
}
Svaret skal igjen være 200 OK. La oss deretter lese informasjonen om kjæledyret for å kontrollere at statusen er riktig oppdatert.
HTTP-metoden for dette er GET, og forespørselen godtar ID-en som en parameter:

Svaret inneholder alle dataene om kjæledyret, inkludert statusen, som nå har verdien «available»:

Sletteforespørselen sendes til nøyaktig samme URL som GET-forespørselen (inkludert ID-parameteren), men den valgte HTTP-metoden er DELETE:

Forespørselen skal igjen være vellykket, og HTTP-svaret skal være 200:

Hvis du sender GET-forespørselen på nytt for den samme kjæledyr-ID-en, får du en fin 404 HTTP-forespørsel, fordi kjæledyret ikke lenger kan finnes på serveren:

Legge til tester i Postman
Gjennom de forrige trinnene gikk du gjennom alle trinnene i testscenarioet, men hvert resultat måtte valideres manuelt ved å kontrollere svarkodene og svarinnholdet.
La oss se hvordan du automatiserer API-testene ved hjelp av Postman, slik at du slipper å utføre disse kontrollene manuelt.
Begynn med den første forespørselen, POST, og klikk på fanen Tester for forespørselen.
Velg kodebiten «Status code: Code is 200» på høyre side. Kodebiter i Postman er forhåndsdefinerte skript du kan bruke, slik at du slipper å skrive koden selv manuelt. Hver kodelinje vi legger inn i fanen Tester for forespørselen, blir kjørt etter at forespørselen er sendt.
Du kan endre navnet på testen til noe mer beskrivende (for eksempel «Oppretting av kjæledyret var vellykket»).
Send forespørselen på nytt. Denne gangen vil du se at fanen Testresultater i svaret viser at 1/1 tester er bestått, samt navnet på den beståtte testen:

Du kan også legge denne kodebiten til PUT- og DELETE-forespørslene.
For å validere statusverdien i svaret på GET-forespørselen bruker du kodebiten «Response body: JSON value check»:
pm.test("Navnet på testen din", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
Dette kodeutdraget lagrer responsen i en variabel kalt jsonData, som den analyserer, leser verdien til et attributt og sammenligner med en forventet verdi.
For oss betyr dette at attributtet «status» skal ha verdien «available». Testen bør derfor se slik ut:
pm.test("Kjæledyrets status er 'available'", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.status).to.eql("available");
});
Og for den siste kontrollen, som bekrefter at kjæledyret ble slettet ved å kjøre GET på nytt, kan vi duplisere den opprinnelige GET-forespørselen og legge til en test som validerer at HTTP-responskoden denne gangen er 404:

Du kan flytte forespørslene inn i samlingen ved å dra og slippe dem.

Bruke variabler i Postman
Du la sannsynligvis merke til at vi måtte kopiere og lime inn ID-en fra POST-forespørselen manuelt i alle de påfølgende forespørslene. Hva om det fantes en enklere måte å gjøre dette på?
Den gode nyheten er at det gjør det! Vi kan bruke Postman-variabler til å lagre gjenbrukbare verdier, slik at hvis verdiene må endres, kan vi endre dem på ett enkelt sted, på samme måte som vi ønsker å gjøre i alle automatiserte tester.
Postman-variabler har tre omfang:
- Global: variabler som er tilgjengelige fra ethvert miljø og enhver samling
- Miljø: variabler som er lagret på miljønivå. Jeg brukte ikke miljøer i denne veiledningen, men det er greit å vite at Postman lar oss opprette ulike miljøer for de forskjellige miljøene vi arbeider med. For eksempel separate miljøer for utvikling, UAT og produksjon
- Samling: disse variablene lagres på samlingsnivå, og de kan brukes fra alle forespørslene i samlingen.
Det finnes flere måter å konfigurere samlingsvariabler på.
Den enkleste måten er å opprette variabelen direkte fra samlingen.
For å gjøre dette klikker du på samlingsnavnet, velger fanen for variabler og angir variabelnavnet og verdien:

For å bruke denne variabelen erstatter du den opprinnelige verdien i forespørslene med variabelnavnet skrevet mellom to krøllparenteser, slik: {{petId}}
Du må bruke den i brødtekstene til POST- og PUT-forespørslene, for «id»-parameteren, slik:
"id": {{petId}},
Og i URL-en til GET- og DELETE-forespørslene, slik: https://petstore.swagger.io/v2/pet/{{petId}}
Du kan se den endelige versjonen av samlingen her.
More Articles
Kjøre Postman-samlingen
Og nå kommer den beste delen! Hele poenget med denne veiledningen var å vise deg hvordan du kjører automatiserte tester ved hjelp av Postman. Alt vi gjorde tidligere, var forberedelser til denne delen.
For å kjøre testene automatisk høyreklikker du på samlingsnavnet eller holder markøren over det, klikker på menyen med de tre prikkene ved siden av navnet og velger «Kjør samling».

Dette åpner samlingskjøreren:

På denne skjermen kan du velge hvilke av forespørslene dine du vil sende, endre rekkefølgen på dem, kjøre samlingen flere ganger (ved å øke antallet iterasjoner) eller legge til forsinkelser mellom forespørslene.
Du kan bare la standardverdiene stå foreløpig og klikke på «Kjør»-knappen. Når kjøringen er fullført, kan du se testresultatene for alle scenariene vi ønsket å teste, med bare et enkelt klikk:

Og det var det! Hvis du fulgte alle trinnene i denne artikkelen, bør du nå ha dine første automatiserte API-tester i Postman! 🚀
Oppsummering
Postman er et svært nyttig verktøy når det gjelder testing av API-er, og denne artikkelen skrapte bare i overflaten. Vi dekket imidlertid hvordan man sender HTTP-forespørsler, leser svarene, oppretter tester og automatisk kontrollerer testresultatene.
Hvis du likte denne artikkelen, abonner på QA Lead-nyhetsbrevet slik at du holder deg oppdatert på alle nyhetene og trendene innen programvaretesting.




