Amarengo

Articles and news

Humble Bits

API testing using Postman, Newman and Jenkins

API testing on ohjelmistotestaus, jossa insinööri testaa sovelluksen toiminnallisuuden lisäksi suorituskykyä, luotettavuutta ja turvallisuutta. Sovellusliittymiä testataan sen selvittämiseksi, toimisiko sovellus odotetulla tavalla, sillä sovellusliittymät ovat sovelluksen toimintojen ydin.

API-testaus kehityksen aikana voi paljastaa API: n, palvelimen, muiden palveluiden, verkon ja muiden kanssa ongelmia, joita ei välttämättä löydetä tai ratkaista helposti käyttöönoton jälkeen.

sovellusliittymien testaus on kuitenkin vaikeaa. Sen sijaan, että vain tarkistaa päätepisteen vastaus, yksi voi olla integrointi testit Postman tutkia ja validoida vastauksia. Nykyään tiimit saattavat myös haluta automatisoida näiden testien suorittamisen heti käyttöönoton jälkeen. Yksi lähestymistapa, jonka voimme ottaa, on se, että integrointitestimme suoritetaan aina, kun Kehittäjä tarkistaa koodin repoon.

lisäämällä tähän Laatutarkastuskerrokseen voidaan varmistaa, että olemassa olevat toiminnot toimivat edelleen odotetulla tavalla, mikä tuo kehittäjille lisäetua todentaa, että heidän koodinsa tekee juuri sen, mihin se oli tarkoitettu.

tools for API test automation in CI

CI viittaa jatkuvaan integraatioon. Testiskriptien ja testityökalun integrointi continuous build-järjestelmään, jossa testiskriptejä voidaan käyttää jokaisen uuden käyttöönoton yhteydessä tai säännöllisesti (päivittäin, viikoittain tai kaksi kertaa viikossa))

  1. postinkantaja: Integraatiotestejä postinkantajan kanssa.
  2. Newman: luo PowerShell-tiedosto, joka suorittaa nämä integrointitestit komentorivin kautta.
  3. Jenkins: lisää Jenkinsiin Post Build-vaihe suorittaaksesi PowerShell-komentosarjan aina, kun build on aloitettu.

API-valinta

olen toteuttanut tämän menettelyn projektissamme GPS-sovellusliittymien avulla, mutta instantiointia varten otetaan käyttöön seuraava sovellusliittymä:

avoin Sääkartta: Ilmaiset julkiset sovellusliittymät.

valitsin tämän, koska se on ilmainen kokoelma sovellusliittymiä, joita kuka tahansa voi tilata ja joilla voi operoida omilla API-avaimillaan.

luo Integrointitestit

ensimmäistä testiä varten otetaan yksinkertainen GET-pyyntö saada sää ID: llä. Jos haluat olla vuorovaikutuksessa API: n kautta, varmista, että käytät API-avainta, joka on vastaanotettu tilattaessa OWM-palveluita.

Steps to First Integration Test

Make an environment on Postman say, ’Sääkartta’ and define the environment variables in it. .

lisää Pre-Req-välilehden edellytykset testin asettamiseksi.

var cityIds =; / / saada satunnaisluku välillä 0-9var randomCityId = matematiikka.kerros ((Math.satunnainen() * 9) + 1);// Aseta ympäristömuuttuja arraypostmanin therandom city id: n arvoon.setenviiriäiset ("CITYID", cityidit)

nyt, testi välilehti Lisää testi script seuraavasti:

var jsonData = JSON.parse (responseBody); / / säästämällä theresponse "name" value into an environment variablepostman.setEnvironmentVariable ('CITYNAME', jsonData.name); pm. test ("tilakoodi on 200", funktio () {pm.response.to.have.status (200); });

yllä oleva testi skripti saa vastauksen ja meidän skripti käärii vastauksen muuttujaan ”jsonData”. Nyt nimikkokiinteistön arvo on tallennettu ympäristömuuttujaan.

näin luodaan ensimmäinen testi, joka epäonnistuu, jos HTTP-tilakoodi on jotain muuta kuin 200.

kokoelmat

edellä mainittujen API-testien tapaan voi olla useita testikäsikirjoituksia useille päätepisteille. Ja nämä useita testi skriptejä voidaan suorittaa peräkkäin on päästä päähän testi suite. Tapa saada koesarja on säilyttää useita testikäsikirjoituksia paikassa haltija kutsutaan kokoelma Postman.

nämä kokoelmat voi sitten edelleen toteuttaa työkalun kokoelmajuoksijan kautta.

Collection Runner

collection runner voi käyttää joukkoa API-päätepisteitä, joiden koekriptit ovat yhdessä paikassa, ja siten ajaa ne yksitellen peräkkäin. Käyttäjän tarvitsee vain suorittaa kokoelma vain kerran kaikki tarvittavat testitiedot, testi skriptit ja niin monta iteraatioita voi haluta. Keräysajon tuloksena on Testiraportti, joka on riittävän kattava seuratakseen sovellusliittymien suorituskykyä ja myös kokeillakseen uudelleen epäonnistuneiden testijaksojen ajamista.

Keräysjuoksijoiden tarkempaa tutkimista varten, ks. linkki.

vaikka Postman ’ s collection Runnerin käyttöliittymä on riittävän hyvä, silti järjestelmän integroimiseksi Jenkinsiin meidän on ajettava kokoelmamme komentorivin kautta. Tapa ajaa kokoelmia komentorivin kautta on siis Newmanin kautta.

Newman

Newman on Node Package Manager (npm) – paketti, joka mahdollistaa kokoelmien ajamisen ja testaamisen suoraan komentoriviltä.

ennakkoedellytykset:

  • NodeJS ja
  • NPM on jo asennettu.

komennot, jotka suoritetaan Windows Powershellissa

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

kun vaaditut asennukset on tehty, kokoelmat ja ympäristö on vietävä JSON-tiedostoihin paikallisjärjestelmässä. Nämä tiedostot voidaan sitten siirtää argumentteina Newmanille.

vaiheet ympäristön ja kokoelmien saamiseksi paikallisjärjestelmään:

  • napsauta Lataa ja Vie-painiketta Postman.
  • Download the collection
  • Download the environment
  • Open command prompt and raise your rights. Tämä on tärkeää, että suoritat komentosarjan. Suorita seuraava komento:
Set-Täytäntöönpanopolitiikka-soveltamisala Nykyinentoimituspolitiikka: tämän muutoksen vahvistaminen rajoituksetta: Y

avaa nyt toinen komentokehote ja suorita seuraava komento:

newman run - e 

Postman-testien lisääminen jenkinsiin

meidän on ensin vietävä Postman-tiedostomme (ympäristö ja kokoelmat) ja lisättävä ne GITIIN yhdessä Powershell-komentosarjamme kanssa kokeiden suorittamiseksi Jenkins builtin kautta.

” lisää postimies-tiedostot projektin juureen.”

käskien Jenkinsiä ajamaan Newmanin

tätä varten kirjoitamme käsikirjoituksen, joka kutsuu Newmania ja siirtää sen ympäristön ja kokoelman JSON-tiedostoiksi.

#powershell.exe-executionpolicy bypass-command "& '%WORKSPACE%\JENKINS_POSTMANDEMO. ps1 ' "echo"Inside Powershell script "$SourceFilePath = $env:WORKSPACE$FilenamePostfix="*.postinkeräys.json "$EnvironmentFile = " Demo-OpenWeatherMap.postinkantaja_ympäristö.json " # Get all Postman test files$JsonFiles = Get-ChildItem-Path $SourceFilePath-name-Filter $FilenamePostfix |Sort-Object-Property CreationTime-Descending# Change to directory where we have NodeJs installed. Muussa tapauksessa "Newmanin" kommandia ei tunnisteta.# Voit asentaa NPM: n ja Newmanin käyttäjäksi ja kopioida ~Roaming\npm-kansion thec:\ drive.# cd C:\Users\\AppData\Roaming\npm\node_modules\newman\bincd C:\npm\node_modules\newman\bin# Loop through the json files and execute newman to run the Postman testsforeach ($File in $JsonFiles) {$collectionfilepath = "$SourceFilePath\$File "$environmentfilepath = "$SourceFilePath\$EnvironmentFile " node newman run $collectionfilepath-e $environmentfilepath --disable-unicode}exit $LASTEXITCODE

– ’poistu $LASTEXITCODE’: Kun kirjoitat tämän komennon, näet viimeisen komennon tuloksen. Teemme tämän varmistaaksemme, että Newman-komento onnistuu jokaisessa silmukassa. Jos jokin testeistä epäonnistuu, joudumme pysäyttämään komentosarjan ja poistumaan 1. Se johtaa Jenkinsin epäonnistuneeseen rakentamiseen.

kirjoituksen lisääminen jenkinsiin

vaiheet:

  • Kirjaudu sisään jenkinsiin ja luo Freestyle-projekti.
  • aloita määrittämällä tämä projekti vetämään repo-koodisi git: stä.
  • Yleiset-välilehdessä siirry rakentamisosioon ja lisää seuraava komento:
powershell.exe-executionpolicy bypass-komento "& '%työtila%\jenkins_postmandemo. ps1'

**yksi voi määrittää sähköposti-ilmoitus-osiossa määrittää sähköpostihälytyksen rakentaa epäonnistumisia sekä.

runing the build and monitoring Results

Try run the project and explained the results.

Jenkinsin ulostulossa on maininta ”Inside Powershell script”.

Conclusion

jatkuvan integraation parantaminen Postmanin, Newmanin ja Jenkinsin avulla lisää uuden laadunvarmistuskerroksen kehitystemme elinkaareen. Vaikka tämä on valtava askel automaatiossa, meidän on korostettava sitä, että testikattavuutemme riippuu testikäsikirjoitustemme laadusta.

Vastaa

Sähköpostiosoitettasi ei julkaista.