Slik bruker du Postman til å teste API-er

Discover how to deliver better software and systems in rapidly scaling environments. Join our Community

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 […]

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?

bilde av hva et api er
Kilde til bildet

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).
Get Free Access
Get regular tech leadership wisdom for delivering better software and systems.
Get Free Access

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:

bilde av http-svarkode
Liste over de vanligste HTTP-svarkodene (Kilde)

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!

gif av start av API-test

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:

skjermbilde av HTTP-forespørsel i Postman
Du kan opprette en ny samling ved å klikke på knappen «Ny», velge «Samling» og angi et navn på samlingen.

OK, nå har du altså en tom samling.

Klikk på URL-en «Legg til en forespørsel» eller på «+»-knappen i listen over faner:

skjermbilde av å legge til en forespørsel i Postman
En ny fane åpnes, der du kan legge til forespørselselementene jeg nevnte tidligere.

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:

skjermbilde av JSON-format

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:

skjermbilde av ny forespørselsfane
Det vi gjorde her, var å opprette et nytt objekt for et kjæledyr som heter Spike, tilhører en kategori kalt «dog», har taggen «bulldog» og statusen «pending». 

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:

skjermbilde av oppretting av nytt kjæledyr

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:

skjermbilde av oppdatering av kjæledyrinformasjon

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:

skjermbilde av HTTP-metode med ID-parameter

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

skjermbilde av svar som inneholder data om kjæledyret

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

skjermbilde av HTTP-metode for DELETE-forespørsel

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

skjermbilde av vellykket DELETE-forespørsel med HTTP-metode

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:

skjermbilde av 404 HTTP-forespørsel

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:

skjermbilde av fanen for testresultater

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:

skjermbilde av API-tester

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

skjermbilde av API-testforespørsel

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:

skjermbilde av API-test- og samlingsinnstillinger

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

skjermbilde av kjøring av API-testsamling

Dette åpner samlingskjøreren:

skjermbilde av samlingskjører

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:

skjermbilde av alle API-testene

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.

Andreea Draniceanu
Hi there! My name is Andreea, I’m a software test engineer based in Romania. I’ve been in the software industry for over 10 years. Currently my main focus is UI test automation with C#, but I love exploring all QA-related areas 😊

You may also like