10 trin Sådan automatiseres din API-test effektivt ~

Før du læser dette indlæg, skal du sørge for, at du har mindst et af disse problemer:

  1. Har du problemer eller udfører du stadig API-test manuelt?
  2. Arbejder du som QA / QE / TE / SET ved hjælp af Postman / Insomnia / Paw ofte for at teste dine REST API-slutpunkter, fordi du ikke nøjagtigt ved, hvordan du tester dine endpoints automatisk?
  3. Arbejder du som QA / QE / TE / SET der ønsker at adskille test fra appen?

Hovedformålet med dette indlæg er at løse alle de ovennævnte problemer ved at automatisere API-testen og integrere det med Jenkins CI. Det er lettere, end du tror, ​​hvis du vælger de rigtige værktøjer og teknikker til det job.

Forudsætninger

  1. Node.js: Node.js er en JavaScript-runtime bygget på Chromes V8 JavaScript-motor. Node.js bruger en begivenhedsdrevet, ikke-blokerende I / O-model, der gør den let og effektiv. Node.js 'pakkeøkosystem, npm, er det største økosystem af open source-biblioteker i verden.
  2. Mokka: Mokka er en javascript-testramme, der gør asynkron test let.
  3. Chai: I modsætning til Jasmine, skal et yderligere påståelsesbibliotek bruges til at supplere Mokka. Chai er et påståelsesbibliotek, der giver dig mulighed for at vælge den påståelsesgrænseflade, du bedst kan lide, herunder "påstå", "forvent" og "bør".
  4. SuperTest: SuperTest er en udvidelse af SuperAgent, et letvægtigt HTTP AJAX-anmodningsbibliotek. SuperTest leverer abstraktioner på højt niveau til test af node.js API-endepunktresponser med let at forstå påstande.
  5. Docker: Docker er en åben platform for udviklere og sysadmins til at bygge, sende og køre distribuerede applikationer, hvad enten det er på bærbare computere, datacenter-VM'er eller skyen.
  6. Jenkins CI: Jenkins er en open source-automatiseringsserver skrevet i Java. Jenkins hjælper med at automatisere den ikke-menneskelige del af hele softwareudviklingsprocessen med nu almindelige ting som kontinuerlig integration, men ved yderligere at styrke holdene til at implementere den tekniske del af en kontinuerlig levering.

Denne tutorial antager, at du allerede har:

  1. Node.js og docker installeret på din maskine.
  2. App med det API, du allerede vil teste, kører. (Her er eksemplet app https://github.com/rifkyalikiki/example-api-app)
  3. Jenkins CI er allerede installeret.

LAD OS KOMME IGANG

  1. Opret din testprojektmappe. For eksempel: eksempel-api-test
  2. Opret package.json-fil for at tilføje alle afhængigheder.

3. Installer alle afhængigheder ved at køre disse kommandoer.

cd din_test_projekt_mappe
npm installere -g mokka
npm installation

Mappen node_moduler skal føjes til din testprojektmappe, og alle afhængigheder skal installeres med succes.

4. Opret testmappe i din testprojektmappe.

cd din_test_projekt_mappe
mkdir test

Kataloget skal kaldes test for Mocha for at finde testfiler, der skal køres.

5. Opret din første API-testfil

Du kan navngive dine mokka-filer hvad som helst. Hvis du imidlertid tester flere slutpunkter, der er forbundet med sæt modeller, anbefaler jeg at navngive dem "dinModel_test.js". I dette eksempel skal du bare oprette en user_test.js-fil i testmappen. Glem ikke at indstille din API-url også til en global variabel. Du ringer til denne variabel, når du fremsætter dine RESTful-anmodninger ved hjælp af SuperTest.

6. Lad os køre din første API-test ved at køre disse kommandoer

cd din_test_projekt_mappe
npm start
eller
cd din_test_projekt_mappe
JUNIT_REPORT_PATH = test-resultat / result.xml JUNIT_REPORT_STACK = 1 mocha - timeout 25000 - farver - reporter mocha-jenkins-reporter

Her er testresultatet

testresultater fra terminalresult.xml

7. Opret entrypoint.sh for at placere din testløberkommando.

8. Opret dockerfile, der vil blive brugt på Jenkins CI.

9. Opret dine Jenkins-jobemner

Ny Jenkins job vareJenkins job vare (1)Jenkins job vare (2)Jenkins job vare (3)

Du kan ignorere advarslen om testresultatet først, den forsvinder, når vi har kørt jobbet.

Klik derefter på SAVE-knappen for at oprette jobbet.

10. Kør dit Jenkins Job og se testresultaterne.

Kør jenkins-jobbet ved at klikke på play-knappenTestresultat fra jenkins job

Mine testresultater vil være forskellige fra dig, fordi jeg allerede har udført jobbet, mens jeg skriver dette indlæg.

Tillykke, du har automatiseret din API-test nu. Næste indlæg giver jeg indsigt i min idé om at oprette din egen testramme.

God test!

Kilde: http://developmentnow.com/2015/02/05/make-your-node-js-api-bulletproof-how-to-test-with-mocha-chai-and-supertest/