Amarengo

Articles and news

Humble Bits

testarea API folosind Poștaș, Newman și Jenkins

testarea API este un tip de testare software în care un inginer testează nu doar funcționalitatea, ci performanța, fiabilitatea și securitatea pentru o aplicație. API-urile sunt testate pentru a examina dacă aplicația ar funcționa așa cum este de așteptat, deoarece API-urile sunt nucleul funcționalităților unei aplicații.

testarea API în timpul dezvoltării poate dezvălui probleme cu API, server, alte servicii, rețea și multe altele, Cele pe care este posibil să nu le descoperiți sau să le rezolvați cu ușurință după implementare.

cu toate acestea, testarea API-urilor este dificilă. În loc să verificați doar răspunsul unui punct final, puteți avea teste de integrare cu Postman pentru a examina și valida răspunsurile. Echipele din aceste zile ar putea dori, de asemenea, să automatizeze rularea acestor teste imediat ce se face o implementare. O abordare putem lua este de a avea testele noastre de integrare a alerga de fiecare dată când un dezvoltator verifică în cod la repo.

adăugând acest nivel de verificare a calității, se poate asigura că funcționalitățile existente funcționează în continuare așa cum se aștepta, cu un beneficiu suplimentar pentru dezvoltatori pentru a valida că codul lor face exact ceea ce a fost destinat.

instrumente pentru automatizarea testelor API în CI

CI se referă la integrarea continuă. Integrarea scripturilor de testare și a unui instrument de testare cu sistemul de construire continuă în care scripturile de testare pot fi rulate împreună cu fiecare nouă implementare sau în mod regulat (zilnic, săptămânal sau săptămânal)

  1. Poștaș: Teste de integrare cu poștașul.
  2. Newman: creați un fișier PowerShell care rulează aceste teste de integrare prin linia de comandă.
  3. Jenkins: adăugați un pas post Build în Jenkins pentru a executa scriptul PowerShell ori de câte ori este inițiată o construcție.

selecție API

am implementat această procedură în proiectul nostru folosind API-urile GPS, dar pentru instanțierea aici, să luăm următoarele API-uri:

Deschideți harta Meteo: api-uri publice gratuite.

am ales acest lucru, deoarece este o colecție gratuită de API-uri la care oricine se poate abona și poate avea propriile chei API cu care să funcționeze.

creați teste de integrare

pentru primul test, să luăm o simplă solicitare GET pentru a obține vremea prin ID. Pentru a interacționa prin API-uri, asigurați-vă că utilizați cheia API primită la abonarea la serviciile OWM.

pași pentru primul test de integrare

faceți un mediu pe poștaș să spună ‘harta vremii’ și definiți variabilele de mediu din acesta. .

adăugați cerințele preliminare în fila Pre-Req pentru a configura testul.

var cityIds=; / / obține un număr aleatoriu între 0-9var randomCityId = Math.podea ((Math.random() * 9) + 1);// Setați o variabilă de mediu la valoarea therandom city id de la arraypostman.setEnvironmentVariable ("CITYID", cityIds)

acum, în fila Test adăugați scriptul de testare după cum urmează:

var jsonData = JSON.parse (responseBody); / / salvarea theresponse" name " valoare într-un mediu variablepostman.setEnvironmentVariable("CITYNAME",jsonData.name); pm. test ("Codul De stare este 200", funcție () {pm.response. to. have. status (200);});

scriptul de testare de mai sus primește răspunsul și scriptul nostru înfășoară răspunsul într-o variabilă numită ‘jsonData’. Acum, valoarea proprietății de nume este salvată într-o variabilă de mediu.

astfel, primul test este creat care eșuează dacă codul de stare HTTP este altceva decât un 200.

colecții

la fel ca testele API de mai sus, se pot avea mai multe scripturi de testare pentru mai multe puncte finale. Și aceste scripturi de testare multiple pot fi rulate în ordine pentru a avea o suită de testare de la capăt la capăt. Modul de a avea o suită de testare este de a păstra mai multe scripturi de testare într-un loc titular numit ca o colecție în Poștaș.

aceste colecții pot fi apoi executate în continuare prin alergătorul de colectare din instrument.

Collection Runner

un collection runner poate fi folosit pentru a avea o colecție de puncte finale API cu scripturile lor de testare într-un singur loc și, prin urmare, să le ruleze unul câte unul într-o manieră secvențială. Utilizatorul trebuie doar să ruleze colecția o singură dată cu toate datele de testare necesare, scripturile de testare și pentru cât mai multe iterații pe care le poate dori. Rezultatul cursei de colectare este un raport de testare, suficient de cuprinzător pentru a monitoriza performanța API-urilor și, de asemenea, pentru a încerca din nou rularea scripturilor de testare eșuate.

pentru studiu elaborat pe alergători de colectare, consultați Link-ul.

deși interfața de utilizator a postman collection runner este suficient de bună, totuși, pentru a integra sistemul cu Jenkins, trebuie să rulăm colecțiile noastre prin linia de comandă. Deci, o modalitate de a rula colecții prin linia de comandă este prin Newman.

Newman

Newman este un pachet Node Package Manager (npm) care ne permite să rulăm și să testăm colecțiile direct din linia de comandă.

Pre-rechizite:

  • NodeJS și
  • NPM deja instalate.

comenzi pentru a fi rulat pe Windows Powershell

  • node-v
  • NPM-v
  • $NPM install-g newman

odată ce instalațiile necesare sunt efectuate, trebuie să aibă colecțiile și mediul său exportate în fișiere JSON în sistemul local. Aceste fișiere pot fi apoi transmise ca argumente către Newman.

pași pentru a obține mediul și colecțiile în sistemul local:

  • Faceți clic pe butonul Descărcare și Export din Poștaș.
  • Descărcați colecția
  • descărcați mediul
  • Deschideți promptul de comandă și ridicați-vă privilegiile. Acest lucru este important pentru dvs. să executați scriptul. Rulați următoarea comandă:
Set-ExecutionPolicy-Scope CurrentUserExecution Policy: Unrestrictedconfirmați această modificare: Y 

acum deschideți un alt prompt de comandă și executați următoarea comandă:

Newman run-e 

adăugarea testelor Poștaș la Jenkins

trebuie mai întâi să exportăm fișierele noastre Poștaș (mediu și colecții) și să le adăugăm la GIT, împreună cu scriptul nostru Powershell pentru a rula testele prin Jenkins build.

„adăugați fișierele Poștaș la rădăcina proiectului.”

spune Jenkins pentru a rula Newman

pentru aceasta vom scrie un script care solicită Newman și trece-l de mediu și de colectare fișiere JSON.

#powershell.exe-executionpolicy bypass-comandă " & '%WORKSPACE%\Jenkins_PostmanDemo.ps1 ' "echo "în interiorul scriptului Powershell"$SourceFilePath = $env:WORKSPACE$FilenamePostfix = "*.poșta_collection.json" $ EnvironmentFile = " Demo-OpenWeatherMap.poșta_mediu.json" # obțineți toate fișierele de testare Postman$JsonFiles = Get-ChildItem-Path $SourceFilePath-Name-Filter $FilenamePostfix |Sort-Object-Property CreationTime-Descending# schimbați în directorul în care avem NodeJs instalat. În caz contrar, Comanda 'newman' nu va fi recunoscută.# Puteți instala NPM și Newman ca utilizator și copiați directorul ~Roaming\npm în theC:\ drive.# cd C:\Users\\AppData\Roaming\npm\node_modules\newman\bincd C:\npm\node_modules\newman\bin # bucla prin fișierele json și executa newman pentru a rula Testsforeach Poștaș ($fișier în $JsonFiles) {$collectionfilepath = " $SourceFilePath\ $ File "$environmentfilepath = "$SourceFilePath\$EnvironmentFile " nod newman run $collectionfilepath-e $environmentfilepath --disable-unicode}exit $LASTEXITCODE

– ‘exit $LASTEXITCODE’: La tastarea acestei comenzi, veți vedea rezultatul ultimei comenzi. Facem acest lucru pentru a ne asigura că la fiecare buclă, comanda Newman are succes. Dacă vreunul dintre teste eșuează, trebuie să oprim scriptul și să ieșim 1. Aceasta va duce la o construcție eșuată pe Jenkins.

adăugarea Script la Jenkins

pași:

  • Conectați-vă la Jenkins și creați un proiect Freestyle.
  • începeți prin configurarea acestui proiect pentru a extrage codul repo din Git.
  • în fila General, accesați secțiunea build și adăugați următoarea comandă:
powershell.exe-executionpolicy bypass-comandă " &' % WORKSPACE% \ Jenkins_PostmanDemo. ps1'

**se poate configura secțiunea de notificare prin e-mail pentru a configura o alertă prin e-mail și pentru eșecurile de construire.

rularea compilării și monitorizarea rezultatelor

încercați să rulați proiectul și să examinați rezultatele.

se poate face intrarea cu succes în scriptul powershell cu declarația ‘inside powershell script’ în ieșirea Jenkins.

concluzie

îmbunătățirea integrării continue utilizând Poștașul, Newman și Jenkins adaugă un alt strat de asigurare a calității în ciclul nostru de viață de dezvoltare. Deși acesta este un pas uriaș în automatizare, trebuie să subliniem faptul că acoperirea noastră de testare depinde de calitatea scripturilor noastre de testare.

Lasă un răspuns

Adresa ta de email nu va fi publicată.