Postman är ett av de mest populära verktygen för att utveckla och testa API:er. Jag har använt det sedan 2017, och att lära mig hur man använder Postman för att testa API:er hjälpte mig verkligen att snabba upp min testprocess.
I den här artikeln går jag igenom steg för steg hur man validerar API-anrop med Postman. När du har läst klart bör du kunna skapa dina egna automatiserade tester.
Men innan vi går in på själva Postman-guiden vill jag förklara några saker om API:er.
Vad är API:er?
API är en förkortning av applikationsprogrammeringsgränssnitt. Fortfarande inte särskilt tydligt, eller hur? 😅 Låt mig utveckla det:
API är ett gränssnitt som definierar hur skript eller program kan kommunicera med en applikation eller tjänst. De fungerar genom att dela data och information mellan applikationer, system och enheter.
Det vanligaste API:et i dag är REST API, som jag kommer att använda längre fram i den här Postman-guiden för API-testning. REST är också en akronym för Resursrepresentation, Stillstånd och Transferering. REST API:er bygger på principer som klient-server-kommunikation, enhetliga gränssnitt för kommunikation mellan system, tillståndslösa operationer och mycket mer.
Kommunikationen sker genom HTTP-anrop och svar.
HTTP-anropens uppbyggnad
HTTP-anrop har fyra huvudkomponenter:
- URL:en
- Slutpunkten, som representerar den specifika resurs vi vill interagera med.
- HTTP-metoden – HTTP-metoder talar om för servern om vi försöker hämta information eller vilken typ av ändringar vi vill att applikationen ska göra. I dag går vi igenom de grundläggande CRUD-operationerna:
- Skapa: POST
- Läsa: GET
- Uppdatera: PUT
- Ta bort: DELETE
- Begärans innehåll. Detta är valfritt, beroende på vilken metod vi använder. I den här Postman-guiden använder vi formatet JSON (JavaScript Object Notation).
HTTP-svarskoder
När vi gör ett HTTP-anrop skickar servern en svarskod som talar om huruvida anropet lyckades eller inte. De huvudsakliga kategorierna av HTTP-svarskoder är:
- 1xx: informationssvar
- 2xx: lyckat
- 3xx: omdirigering
- 4xx: klientfel
- 5xx: serverfel
Jag tycker verkligen om den här visuella representationen från Julia Evans:

Du hittar en fullständig lista över svarskoderna här, eller, om du föredrar att få dem förklarade av katter, här 🐱👓
Okej, jag tycker att vi har gått igenom tillräckligt mycket för att börja med själva guiden – nu ska vi se hur man använder Postman för att testa API:er!
Så använder du Postman för att testa API:er (steg för steg)
Du kan använda Postman på två sätt: direkt från webbläsaren (du måste skapa ett konto för att kunna göra detta), eller installerat på din lokala dator – för det här alternativet är ett konto valfritt.
Jag föredrar att ha det installerat, helt enkelt eftersom jag inte tycker om röran med för många öppna webbläsarflikar, så det är detta jag kommer att använda framöver.
Det här är en nybörjarguide, så jag kommer att använda några enkla testfall för att visa hur man använder Postman för att testa ett API. Demoappen jag kommer att använda är Swagger Petstore, och scenariot jag kommer att testa är:
- Lägg till ett nytt husdjur i butiken med statusen ‘pending’
- Uppdatera husdjurets status till ‘available’
- Validera att husdjurets information har uppdaterats
- Ta bort husdjuret
- Bekräfta att husdjuret har tagits bort
Okej, då kör vi!

Den första HTTP-begäran i Postman
Med Postman kan du gruppera API-begäranden i samlingar. Det här är grupper av relaterade HTTP-begäranden. Skapa en ny samling för alla följande begäranden som du kommer att använda i testerna:

Okej, nu har du alltså en tom samling.
Klicka på webbadressen ”Lägg till en begäran” eller på knappen ”+” i listan över flikar:

Swagger UI-sidan fungerar som dokumentation för API:et.
Resursen (slutpunkten) du behöver för att skapa ett nytt husdjur är ”/pet” och HTTP-metoden är POST.
På modellfliken kan du se objektet som du måste skicka som begärans brödtext samt datatyperna för varje värde:

Vi använder JSON-formatet för att skicka svarsbrödtexten, så aktivera radioknappen ”rå” och välj JSON i rullgardinsmenyn.
Begärans brödtext bör se ut ungefär så här:
{
"id": 0,
"category": {
"id": 0,
"name": "dog"
},
"name": "Spike",
"photoUrls": [
"string"
],
"tags": [
{
"id": 0,
"name": "bulldog"
}
],
"status": "pending"
}
Du kan enkelt lägga till resten av uppgifterna på den nya begäranfliken:

För att skapa det här nya husdjuret på servern klickar du på knappen Skicka.
Om allt går bra får du ett lyckat svar, och svarsbrödtexten innehåller information om husdjuret, inklusive dess ID.
Vi kommer att behöva använda detta framöver:

Nästa steg är att uppdatera husdjurets information.
För detta måste du komma åt samma resurs, ”/pet”, men skicka en begäran med HTTP-metoden PUT.
Du kan se vilken information du behöver skicka i begärans brödtext:

Skapa alltså en ny begäran med samma begärande-URL, välj PUT-metoden och skicka samma begärandetext, med undantaget att du ändrar statusvärdet till ‘available’ och använder ID-numret från det föregående svaret:
{
"id": <ange ID-numret här>,
"category": {
"id": 0,
"name": "dog"
},
"name": "Spike",
"photoUrls": [
"string"
],
"tags": [
{
"id": 0,
"name": "bulldog"
}
],
"status": "available"
}
Svaret bör återigen vara 200 OK. Nu läser vi informationen om husdjuret för att kontrollera att statusen har uppdaterats korrekt.
HTTP-metoden för detta är GET, och begäran tar emot ID-numret som en parameter:

Svaret innehåller alla uppgifter om husdjuret, inklusive statusen, som nu har värdet ‘available’:

Raderingsbegäran skickas till exakt samma URL som GET-begäran (inklusive ID-parametern), men den valda HTTP-metoden är DELETE:

Än en gång bör begäran lyckas och HTTP-svaret vara 200:

Om du skickar GET-begäran igen för samma ID-nummer för husdjuret får du ett 404 HTTP-svar, eftersom husdjuret inte längre kan hittas på servern:

Lägga till tester i Postman
Med de föregående stegen gick du igenom alla steg i testscenariot, men varje resultat behövde valideras manuellt genom att kontrollera svarskoderna och svarstexterna.
Nu ska vi se hur du automatiserar API-testerna med Postman, så att du inte behöver utföra dessa kontroller manuellt.
Börja med den första begäran, POST, och klicka på fliken Tester för begäran.
Välj kodfragmentet ‘Status code: Code is 200’ på höger sida. Kodfragment i Postman är fördefinierade skript som du kan använda, så att du inte behöver skriva koden själv manuellt. Varje kodrad som vi lägger till på fliken Tester för begäran körs efter att begäran har skickats.
Du kan ändra testets namn till något mer beskrivande (t.ex. ‘Skapandet av husdjuret lyckades’).
Skicka begäran igen. Den här gången ser du att fliken Testresultat i svaret visar att 1/1 tester har godkänts samt namnet på det godkända testet:

Du kan även lägga till detta kodfragment i PUT- och DELETE-begärandena.
För att validera statusvärdet i svaret från GET-begäran använder du kodfragmentet ‘Response body: JSON value check’:
pm.test("Ditt testnamn", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
Det här kodavsnittet sparar svaret i en variabel med namnet jsonData, som det sedan tolkar, läser värdet för ett attribut från och jämför med ett förväntat värde.
För oss innebär detta att attributet ‘status’ ska ha värdet ‘available’. Testet bör därför se ut så här:
pm.test("Husdjurets status är 'available'", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.status).to.eql("available");
});
För den sista kontrollen, som bekräftar att husdjuret har tagits bort genom att köra GET igen, kan vi duplicera den ursprungliga GET-begäran och lägga till ett test som den här gången validerar att HTTP-svarskoden är 404:

Du kan flytta begärandena inuti samlingen genom att dra och släppa dem.

Använda variabler i Postman
Du har förmodligen lagt märke till att vi var tvungna att manuellt kopiera och klistra in ID:t från POST-begäran i alla efterföljande begäranden. Tänk om det fanns ett enklare sätt att göra detta?
Den goda nyheten är att det gör det! Vi kan använda Postman-variabler för att lagra återanvändbara värden, så att vi kan ändra dem på en enda plats om värdena behöver ändras, på samma sätt som vi strävar efter att göra i alla automatiserade tester.
Postman-variabler har tre omfång:
- Global: variabler som kan nås från alla miljöer och samlingar
- Miljö: variabler som sparas på miljönivå. Jag använde inte miljöer i den här handledningen, men det är bra att känna till att Postman låter oss skapa olika miljöer för de olika miljöer vi arbetar med. Till exempel separata miljöer för utveckling, UAT och produktion
- Samling: dessa variabler lagras på samlingsnivå och kan nås från alla begäranden i samlingen.
Det finns flera sätt att konfigurera samlingsvariabler.
Det enklaste sättet är att skapa variabeln direkt från samlingen.
För att göra detta klickar du på samlingens namn, väljer fliken för variabler och anger variabelns namn och värde:

För att använda den här variabeln ersätter du det ursprungliga värdet i begärandena med variabelnamnet skrivet mellan två klamrar, så här: {{petId}}
Du måste använda den i brödtexten för POST- och PUT-begäran, för parametern “id”, så här:
"id": {{petId}},
Och i URL:en för GET- och DELETE-begäran, så här: https://petstore.swagger.io/v2/pet/{{petId}}
Du kan se den slutliga versionen av samlingen här.
Köra Postman-samlingen
Och nu kommer den bästa delen! Hela poängen med den här handledningen var att visa dig hur du kör automatiserade tester med Postman. Allt vi gjorde tidigare var förberedelser inför den här delen.
För att köra testerna automatiskt högerklickar du på samlingens namn, eller håller muspekaren över det, klickar sedan på menyn med de tre punkterna bredvid namnet och väljer ‘Kör samling’.

Detta öppnar Collection Runner:

På den här skärmen kan du välja vilka av dina begäranden du vill skicka, ändra deras ordning, köra samlingen flera gånger (genom att öka antalet iterationer) eller lägga till fördröjningar mellan begärandena.
Du kan låta standardvärdena vara kvar tills vidare och klicka på knappen ’Kör’. När körningen är klar kan du se testresultaten för alla scenarier vi ville testa, med bara ett enkelt klick:

Och det var allt! Om du har följt alla steg i den här artikeln bör du nu ha dina första automatiserade API-tester i Postman! 🚀
Sammanfattning
Postman är ett mycket användbart verktyg när det gäller att testa API:er, och den här artikeln skrapade bara på ytan. Vi gick dock igenom hur man skickar HTTP-förfrågningar, läser svaren, skapar tester och automatiskt kontrollerar testresultaten.
Om du gillade den här artikeln kan du prenumerera på QA Leads nyhetsbrev så att du håller dig uppdaterad om alla nyheter och trender inom programvarutestning.

