Amarengo

Articles and news

Humble Bits

API tesztelés Postman, Newman és Jenkins használatával

az API tesztelés egy olyan szoftvertesztelés, amelyben a mérnök nem csak a funkcionalitást, hanem a teljesítményt, a megbízhatóságot és a biztonságot teszteli egy alkalmazás számára. Az API-kat tesztelik annak megvizsgálására, hogy az alkalmazás a várt módon működik-e, mivel az API-k az alkalmazás funkcióinak magját képezik.

az API tesztelés a fejlesztés során felfedheti az API, a szerver, az egyéb szolgáltatások, a hálózat stb.problémáit, amelyeket a telepítés után nem lehet könnyen felfedezni vagy megoldani.

az API-k tesztelése azonban nehéz. Ahelyett, hogy csak egy végpont válaszát ellenőriznénk, integrációs teszteket végezhetünk a Postmannal a válaszok megvizsgálására és érvényesítésére. Csapatok ezekben a napokban is szeretné automatizálni fut ezek a tesztek, amint a telepítés történik. Az egyik megközelítés, amelyet megtehetünk, az, hogy integrációs tesztjeinket minden alkalommal lefuttatjuk, amikor egy fejlesztő ellenőrzi a kódot a repóhoz.

a minőségellenőrzés ezen rétegének hozzáadásával biztosítható, hogy a meglévő funkciók továbbra is úgy működjenek, ahogy várták, további előnyökkel járva a fejlesztők számára annak igazolására, hogy kódjuk pontosan azt csinálja, amire szánták.

eszközök API teszt automatizálás CI

CI utal folyamatos integráció. Teszt szkriptek és teszteszköz integrálása a continuous build rendszerrel, ahol a teszt szkriptek futtathatók minden új telepítéssel vagy rendszeresen (napi, heti vagy kéthetente)

  1. Postás: Integrációs tesztek Postás.
  2. Newman: hozzon létre egy PowerShell fájlt, amely parancssoron keresztül futtatja ezeket az integrációs teszteket.
  3. Jenkins: adjon hozzá egy post Build lépést a Jenkins-ben, hogy végrehajtsa a PowerShell szkriptet, amikor egy buildet kezdeményez.

API kiválasztás

ezt az eljárást a projektünkben a GPS API-k segítségével valósítottam meg, de az itt történő példányosításhoz vegyük fel a következő API-kat:

Open Weather Map: ingyenes nyilvános API-k.

ezt azért választottam, mert ez egy ingyenes API-gyűjtemény, amelyre bárki feliratkozhat, és saját API-kulcsokkal működhet.

integrációs tesztek létrehozása

az első teszthez vegyünk fel egy egyszerű GET kérést, hogy ID-t kapjunk. Az API-kon keresztüli interakcióhoz feltétlenül használja az OWM-szolgáltatások előfizetésekor kapott API-kulcsot.

az első integrációs teszt lépései

tegyen egy környezetet a Postman-on, mondja ki, hogy ‘Időjárás Térkép’, és határozza meg a környezeti változókat. .

adja hozzá az előfeltételeket a pre-Req lapon a teszt beállításához.

var cityIds =; / / kap egy véletlen szám között 0-9var randomCityId = Math.emelet ((Math.véletlen() * 9) + 1);// állítson be egy környezeti változót az arraypostman véletlenszerű városazonosítójának értékére.setEnvironmentVariable ("CITYID", cityIds)

most, a teszt lapon adja hozzá a teszt szkriptet az alábbiak szerint:

var jsonData = JSON.parse (responseBody); / / a válasz "név" értékének mentése egy környezetbe variablepostman. setEnvironmentVariable("CITYNAME",jsonData.name); pm.test ("állapotkód 200", függvény () {pm.response. to. have. status (200);});

a fenti teszt szkript megkapja a választ, a szkriptünk pedig egy ‘jsonData’nevű változóba csomagolja a választ. Most a name tulajdonság értéke egy környezeti változóba kerül.

így létrejön az első teszt, amely sikertelen, ha a HTTP állapotkód nem 200.

gyűjtemények

a fenti API tesztekhez hasonlóan több teszt szkript is lehet több végponthoz. És ezek a több teszt szkriptek lehet futtatni egymás után, hogy egy end to end teszt suite. A tesztcsomag megszerzésének módja az, ha több teszt szkriptet tart egy Helytartóban, amelyet gyűjteményként hívnak Postman.

ezeket a gyűjteményeket ezután tovább lehet végrehajtani az eszköz gyűjteményfutóján keresztül.

Collection Runner

a collection runner lehet használni, hogy egy gyűjtemény API végpontok azok teszt szkriptek egy helyen, és ezért futtatni őket egyenként egymás után módon. A felhasználónak csak egyszer kell futtatnia a gyűjteményt az összes szükséges tesztadattal, teszt szkriptekkel és annyi iterációval, amennyit csak akar. A gyűjtemény futtatásának eredménye egy tesztjelentés, amely elég átfogó ahhoz, hogy figyelemmel kísérje az API-k teljesítményét, valamint hogy újra megpróbálja futtatni a sikertelen teszt szkripteket.

a Gyűjteményfutók részletes tanulmányához lásd a linket.

bár a Postman ‘ s collection runner felhasználói felülete elég jó, mégis, hogy integráljuk a rendszert Jenkins-szel, a gyűjteményeinket parancssoron keresztül kell futtatnunk. Tehát a gyűjtemények parancssoron keresztüli futtatásának módja a Newman.

Newman

a Newman egy Node Package Manager (NPM) csomag, amely lehetővé teszi a gyűjtemények futtatását és tesztelését közvetlenül a parancssorból.

előfeltételek:

  • NodeJS és
  • NPM már telepítve van.

A Windows Powershell rendszeren futtatandó parancsok

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

a szükséges telepítések elvégzése után a gyűjteményeket és a környezetet exportálni kell a helyi rendszer JSON fájljaiba. Ezeket a fájlokat ezután argumentumként továbbíthatjuk Newmannek.

a környezet és a gyűjtemények helyi rendszeren történő lekérésének lépései:

  • kattintson a letöltés és Exportálás gombra a Postman alkalmazásban.
  • töltse le a gyűjteményt
  • töltse le a környezetet
  • nyissa meg a parancssort, és emelje fel jogosultságait. Ez fontos a szkript végrehajtásához. Futtassa a következő parancsot:
Set-ExecutionPolicy-Scope CurrentUserExecution Policy: Unrestrictedconfirm this change: Y

most nyisson meg egy másik parancssort, és futtassa a következő parancsot:

newman run-e 

Postman tesztek hozzáadása a Jenkinshez

először exportálnunk kell Postman fájljainkat (környezet és gyűjtemények), és hozzá kell adnunk őket a GIT-hez, a Powershell szkriptünkkel együtt, hogy a teszteket Jenkins builden keresztül futtassuk.

“adja hozzá a postás fájlokat a projekt gyökeréhez.”

megmondva Jenkinsnek, hogy futtassa Newman

ehhez írunk egy szkriptet, amely felhívja Newmant, és átadja neki a környezet és a gyűjtemény JSON fájljait.

#powershell.exe-executionpolicy bypass-parancs " & '%WORKSPACE%\Jenkins_PostmanDemo.ps1 ' "echo "a Powershell szkript belsejében"$SourceFilePath = $env:WORKSPACE$FilenamePostfix = "*.postás_gyűjtemény.json "$EnvironmentFile = " Demo-OpenWeatherMap.postás_környezet.json " # Szerezd meg az összes Postás tesztfájlt$JsonFiles = Get-ChildItem-Path $SourceFilePath-name-Filter $FilenamePostfix / Sort-Object-Property CreationTime-Descending # váltás a könyvtárba, ahol NodeJs telepítve van. Ellenkező esetben a 'newman' parancs nem kerül felismerésre.# Telepítheti az NPM-et és a Newman-t felhasználóként, és átmásolhatja a ~Roaming\npm könyvtárat AEC:\ meghajtóba.# cd C:\Users\\AppData\Roaming\npm\node_modules\newman\bincd C:\npm\node_modules\newman\bin # Loop a json fájlokat, és végre newman futtatni a Postman testsforeach ($Fájl $JsonFiles) {$collectionfilepath = "$SourceFilePath\$File "$environmentfilepath = "$SourceFilePath \ $EnvironmentFile " csomópont newman run $collectionfilepath-e $environmentfilepath -- disable-unicode} kilépés $LASTEXITCODE

– ‘kilépés $LASTEXITCODE’: A parancs beírásakor megjelenik az utolsó parancs eredménye. Ezt azért tesszük, hogy minden ciklusban a Newman parancs sikeres legyen. Ha bármelyik teszt sikertelen, le kell állítanunk a szkriptet, és ki kell lépnünk az 1-ből. Ez azt eredményezi, egy sikertelen építeni Jenkins.

szkript hozzáadása Jenkinshez

lépések:

  • jelentkezzen be a Jenkins – be, és hozzon létre egy Freestyle projektet.
  • Kezdje azzal, hogy konfigurálja ezt a projektet, hogy húzza ki a repo kódot a Git-ből.
  • az Általános lapon lépjen a build szakaszba, és adja hozzá a következő parancsot:
powershell.exe-executionpolicy bypass-parancs "& '%WORKSPACE% \ Jenkins_PostmanDemo. ps1'

**az e-mail értesítési szakasz konfigurálható az e-mail riasztás konfigurálásához az építési hibákról is.

a build futtatása és az eredmények figyelése

próbálja meg futtatni a projektet, és vizsgálja meg az eredményeket.

a powershell szkriptbe való sikeres belépést a Jenkins kimenetben található ‘Inside Powershell script’ utasítással lehet elérni.

következtetés

a folyamatos integráció javítása a Postman, Newman és Jenkins felhasználásával újabb minőségbiztosítási réteget ad a fejlesztési életciklusunkba. Bár ez egy hatalmas lépés az automatizálásban, hangsúlyoznunk kell azt a tényt, hogy a teszt lefedettsége a teszt szkriptek minőségétől függ.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.