Postman er et af de mest populære værktøjer til udvikling og test af API'er. Jeg har brugt det siden 2017, og det at lære at bruge Postman til at teste API'er hjalp mig virkelig med at fremskynde min testproces.
I denne artikel vil jeg trin for trin vise dig, hvordan du validerer API-anmodninger ved hjælp af Postman. Når du er færdig, bør du kunne oprette dine egne automatiserede tests.
Men før vi går i gang med selve Postman-vejledningen, vil jeg forklare nogle ting om API'er.
Hvad er API'er?

API er en forkortelse for applikationsprogrammeringsgrænseflade. Stadig ikke helt klart, vel? 😅 Lad mig uddybe det:
En API er en grænseflade, der definerer, hvordan scripts eller programmer kan kommunikere med en applikation eller tjeneste. De fungerer ved at dele data og oplysninger mellem applikationer, systemer og enheder.
Den mest almindelige API i øjeblikket er REST API, som jeg vil bruge senere i denne Postman-vejledning i API-test. REST er også et akronym for REpresentational State Transfer. REST API'er bygger på principper som klient-server-kommunikation, ensartede grænseflader til kommunikation mellem systemer, tilstandsløse handlinger og meget mere.
Kommunikationen foregår gennem HTTP-anmodninger og -svar.
HTTP-anmodningers anatomi
HTTP-anmodninger har 4 hovedkomponenter:
- URL'en
- Endpointet, som repræsenterer den specifikke ressource, vi ønsker at interagere med.
- HTTP-metoden—HTTP-metoder fortæller serveren, om vi forsøger at hente oplysninger, eller hvilke ændringer vi ønsker, at applikationen skal udføre. I dag gennemgår vi de grundlæggende CRUD-handlinger:
- Opret: POST
- Læs: GET
- Opdater: PUT
- Slet: DELETE
- Anmodningens brødtekst. Dette er valgfrit, afhængigt af hvilken metode vi bruger. I denne Postman-vejledning bruger vi formatet JSON (JavaScript Object Notation).
Have an account? Log In
HTTP-svarkoder
Når vi sender en HTTP-anmodning, returnerer serveren en svarkode, som fortæller os, om anmodningen lykkedes eller ej. De vigtigste kategorier af HTTP-svarkoder er:
- 1xx: informationssvar
- 2xx: succes
- 3xx: omdirigering
- 4xx: klientfejl
- 5xx: serverfejl
Jeg er virkelig vild med denne visuelle fremstilling fra Julia Evans:

Du kan finde en komplet liste over svarkoderne her, eller hvis du foretrækker dem forklaret af katte, her 🐱👓
Okay, jeg synes, vi har dækket nok til at komme i gang med selve vejledningen—lad os nu se, hvordan man bruger Postman til at teste API'er!
Sådan bruger du Postman til at teste API'er (trin for trin)
Du kan bruge Postman på to måder: direkte fra browseren (du skal oprette en konto for at kunne gøre dette) eller installeret på din lokale maskine—det er valgfrit, om du vil have en konto til denne mulighed.
Jeg foretrækker at have det installeret, simpelthen fordi jeg ikke bryder mig om rod med for mange åbne browserfaner, så det er den løsning, jeg bruger fremover.
Dette er en begyndervejledning, så jeg vil bruge nogle enkle testtilfælde til at demonstrere, hvordan man bruger Postman til at teste en API. Demoappen, jeg vil bruge, er Swagger Petstore, og det scenarie, jeg vil teste, er:
- Tilføj et nyt kæledyr til lageret med status som ‘afventende’
- Opdater kæledyrets status til ‘tilgængelig’
- Kontrollér, at oplysningerne om kæledyret blev opdateret
- Slet kæledyret
- Bekræft, at kæledyret blev slettet
Okay, lad os komme i gang!

Den første HTTP-anmodning i Postman
Postman gør det muligt at gruppere API-anmodninger i samlinger. Det er grupper af relaterede HTTP-anmodninger. Opret en ny samling til alle de følgende anmodninger, som du vil bruge i testene:

Okay, så har du nu en tom samling.
Klik på URL'en 'Tilføj en anmodning' eller på knappen '+' på listen over faner:

Swagger UI-siden fungerer som dokumentation for API'et.
Den ressource (slutpunkt), du skal bruge til at oprette et nyt kæledyr, er '/pet', og HTTP-metoden er POST.
På fanen Model kan du se det objekt, du skal sende som anmodningens brødtekst, samt datatyperne for hver værdi:

Vi bruger JSON-formatet til at sende svarbrødteksten, så aktivér alternativknappen 'rå', og vælg JSON i rullemenuen.
Anmodningens brødtekst bør se nogenlunde sådan ud:
{
"id": 0,
"category": {
"id": 0,
"name": "dog"
},
"name": "Spike",
"photoUrls": [
"string"
],
"tags": [
{
"id": 0,
"name": "bulldog"
}
],
"status": "pending"
}
Du kan nemt tilføje resten af oplysningerne på den nye anmodningsfane:

Hvis du vil oprette dette nye kæledyr på serveren, skal du klikke på knappen Send.
Hvis alt går godt, modtager du et vellykket svar, og svarbrødteksten vil indeholde nogle oplysninger om kæledyret, herunder dets ID.
Vi får brug for dette fremover:

Det næste trin er at opdatere oplysningerne om kæledyret.
Det gør du ved at tilgå den samme ressource, '/pet', men sende en anmodning med HTTP-metoden PUT.
Du kan se, hvilke oplysninger du skal sende i anmodningens brødtekst:

Opret derefter en ny anmodning ved hjælp af den samme anmodnings-URL, vælg PUT-metoden, og send det samme anmodningsindhold, men ændr statusværdien til ‘available’, og brug ID'et fra det forrige svar:
{
"id": <indtast ID'et her>,
"category": {
"id": 0,
"name": "dog"
},
"name": "Spike",
"photoUrls": [
"string"
],
"tags": [
{
"id": 0,
"name": "bulldog"
}
],
"status": "available"
}
Svaret bør igen være 200 OK. Lad os derefter læse oplysningerne om kæledyret for at kontrollere, at status er blevet opdateret korrekt.
HTTP-metoden til dette er GET, og anmodningen accepterer ID'et som en parameter:

Svaret indeholder alle kæledyrets data, herunder status, som nu har værdien ‘available’:

Sletteanmodningen udføres på nøjagtig samme URL som GET-anmodningen (inklusive ID-parameteren), men den valgte HTTP-metode vil være DELETE:

Igen bør anmodningen lykkes, og HTTP-svaret bør være 200:

Hvis du sender GET-anmodningen igen for det samme kæledyrs-ID, får du en 404 HTTP-fejl, fordi kæledyret ikke længere kan findes på serveren:

Tilføjelse af tests i Postman
Med de foregående trin gennemgik du alle trin i testscenariet, men hvert resultat skulle valideres manuelt ved at kontrollere svarkoderne og -indholdet.
Lad os se, hvordan du automatiserer API-testene ved hjælp af Postman, så du ikke behøver at udføre disse kontroller manuelt.
Begynd med den første anmodning, POST, og klik på fanen Tests for anmodningen.
Vælg kodestykket 'Statuskode: Koden er 200' i højre side. Kodestykker i Postman er foruddefinerede scripts, som du kan bruge, så du ikke selv behøver at skrive koden manuelt. Hver kodelinje, som vi indtaster i fanen Tests for anmodningen, udføres, efter at anmodningen er sendt.
Du kan ændre testens navn til noget mere beskrivende (f.eks. 'Oprettelse af kæledyr lykkedes').
Send anmodningen igen, og denne gang vil du se, at fanen Testresultater for svaret viser, at 1/1 tests er bestået, samt navnet på den beståede test:

Du kan også føje dette kodestykke til PUT- og DELETE-anmodningerne.
Brug kodestykket ‘Svarindhold: Kontrol af JSON-værdi’ til at validere statusværdien i svaret på GET-anmodningen:
pm.test("Dit testnavn", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
Denne kodestump gemmer svaret i en variabel ved navn jsonData, som den analyserer, læser værdien af en attribut og sammenligner den med en forventet værdi.
For os betyder det, at attributten ‘status’ skal have værdien ‘available’. Testen bør derfor se sådan ud:
pm.test("Kæledyrets status er 'available'", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.status).to.eql("available");
});
Og til den sidste kontrol, som bekræfter, at kæledyret blev slettet, ved at køre GET igen, kan vi duplikere den oprindelige GET-anmodning og tilføje en test, der denne gang validerer, at HTTP-svarkoden er 404:

Du kan flytte anmodningerne ind i samlingen ved at trække og slippe dem.

Brug af variabler i Postman
Du har sikkert bemærket, at vi manuelt skulle kopiere og indsætte ID'et fra POST-anmodningen i alle de efterfølgende anmodninger. Hvad nu, hvis der var en nemmere måde at gøre det på?
Den gode nyhed er, at det er der! Vi kan bruge Postman-variabler til at gemme genanvendelige værdier, så hvis værdierne skal ændres, kan vi ændre dem ét enkelt sted, på samme måde som vi tilstræber at gøre i alle automatiserede tests.
Postman-variabler har tre niveauer:
- Global: variabler, der kan tilgås fra ethvert miljø og enhver samling
- Miljø: variabler, der er gemt på miljøniveau. Jeg brugte ikke miljøer i denne vejledning, men det er godt at vide, at Postman giver os mulighed for at oprette forskellige miljøer til de forskellige miljøer, vi arbejder med. For eksempel separate miljøer til Dev, UAT og Produktion
- Samling: disse variabler gemmes på samlingsniveau, og de kan tilgås fra alle anmodninger i samlingen.
Der er flere måder at konfigurere samlingsvariabler på.
Den enkleste måde er at oprette variablen direkte fra samlingen.
For at gøre dette skal du klikke på samlingens navn, vælge fanen med variabler og angive variablens navn og værdi:

For at bruge denne variabel skal du erstatte den oprindelige værdi i anmodningerne med variabelnavnet skrevet mellem to tuborgede parenteser, sådan her: {{petId}}
Du skal bruge den i brødteksterne til POST- og PUT-anmodningerne for parameteren “id”, sådan her:
"id": {{petId}},
Og i URL'en til GET- og DELETE-anmodningerne, sådan her: https://petstore.swagger.io/v2/pet/{{petId}}
Du kan se den endelige version af samlingen her.
More Articles
Kørsel af Postman-samlingen
Og nu kommer den bedste del! Hele formålet med denne vejledning var at vise dig, hvordan du kører automatiserede tests ved hjælp af Postman. Alt det, vi gjorde tidligere, var forberedelse til denne del.
For at køre testene automatisk skal du højreklikke på samlingens navn eller holde markøren over det, derefter klikke på menuen med de tre prikker ved siden af navnet og vælge ‘Kør samling’.

Dette åbner Samlingskørsel:

På denne skærm kan du vælge, hvilke af dine anmodninger du vil sende, ændre deres rækkefølge, køre samlingen flere gange (ved at øge antallet af gentagelser) eller tilføje forsinkelser mellem anmodningerne.
Du kan bare lade standardværdierne være indtil videre og klikke på knappen ‘Kør’. Når kørslen er fuldført, kan du med et enkelt klik se testresultaterne for alle de scenarier, vi ønskede at teste:

Og det var det! Hvis du fulgte alle trinnene i denne artikel, burde du nu have dine første automatiserede API-tests i Postman! 🚀
Afrunding
Postman er et meget nyttigt værktøj, når det gælder test af API'er, og denne artikel berørte kun overfladen. Vi nåede dog at gennemgå, hvordan man sender HTTP-anmodninger, hvordan man læser svarene, hvordan man opretter tests, og hvordan man automatisk kontrollerer testresultaterne.
Hvis du kunne lide denne artikel, så abonner på QA Lead-nyhedsbrevet, så du er opdateret med alle nyhederne og tendenserne inden for softwaretest.



