Amarengo

Articles and news

Humble Bits

 testování API pomocí Postman, Newman a Jenkins

testování API je typ testování softwaru, kde inženýr testuje nejen funkčnost, ale výkon, spolehlivost a bezpečnost aplikace. API jsou testovány, aby se zjistilo, zda by aplikace fungovala tak, jak se očekává, protože API jsou jádrem funkcí aplikace.

testování API během vývoje může odhalit problémy s API, serverem, dalšími službami, sítí a dalšími, které člověk nemusí po nasazení snadno objevit nebo vyřešit.

testování API je však obtížné. Namísto pouhého ověření odpovědi koncového bodu, jeden může mít integrační testy s pošťák zkoumat a ověřovat odpovědi. Týmy v těchto dnech mohou také chtít automatizovat spuštění těchto testů, jakmile bude provedeno nasazení. Jeden přístup, který můžeme přijmout, je nechat naše integrační testy spustit pokaždé, když vývojář zkontroluje kód na repo.

přidání této vrstvy kontroly kvality může zajistit, že stávající funkce stále fungují tak, jak se očekávalo, s další výhodou pro vývojáře, aby ověřili, že jejich kód dělá přesně to, co bylo zamýšleno.

nástroje pro automatizaci testů API v CI

ci označuje kontinuální integraci. Integrace testovacích skriptů a testovacího nástroje se systémem continuous build, kde lze testovací skripty spouštět s každým novým nasazením nebo pravidelně (denně, týdně nebo čtrnáctidenně)

  1. pošťák: Integrační testy s pošťákem.
  2. Newman: Vytvořte soubor PowerShell, který spustí tyto integrační testy pomocí příkazového řádku.
  3. Jenkins: přidejte krok sestavení příspěvku v Jenkins a spusťte skript PowerShell při každém zahájení sestavení.

výběr API

tento postup jsem implementoval v našem projektu pomocí API GPS, ale pro instanci zde pojďme využít následující API:

otevřená mapa počasí: bezplatná veřejná API.

vybral jsem si to, protože se jedná o bezplatnou sbírku API, ke které se může kdokoli přihlásit a mít vlastní API klíče, se kterými může pracovat.

Vytvořte integrační testy

pro první test se ujme jednoduchého požadavku GET pro získání Počasí podle ID. Chcete-li komunikovat prostřednictvím rozhraní API, nezapomeňte použít klíč API přijatý při přihlášení k odběru služeb OWM.

kroky k prvnímu integračnímu testu

udělejte prostředí na Pošťákovi říkat „Mapa počasí“ a definujte proměnné prostředí v něm. .

přidejte předpoklady na záložku Pre-Req pro nastavení testu.

var cityIds =; / / získat náhodné číslo mezi 0-9var randomCityId = Math.podlaha ((Math.random() * 9) + 1);// nastavte proměnnou prostředí na hodnotu ID města z arraypostman.setEnvironmentVariable ("CITYID", cityIds)

nyní na kartě Test přidejte testovací skript následovně:

var jsonData = JSON.parse (responseBody); / / Uložení hodnoty odpovědi "name" do prostředí variablepostman. setEnvironmentVariable ("CITYNAME", jsonData.name); pm. test ("stavový kód je 200", funkce () {pm. response. to. have. status (200);});

výše uvedený testovací skript dostane odpověď a náš skript zabalí odpověď do proměnné zvané „jsonData“. Nyní je hodnota vlastnosti name uložena v proměnné prostředí.

tak je vytvořen první test, který selže, pokud je stavový kód HTTP něco jiného než 200.

sbírky

stejně jako výše uvedené testy API lze mít více testovacích skriptů pro více koncových bodů. A tyto více testovacích skriptů lze spustit v pořadí, aby měly testovací sadu end to end. Způsob, jak mít testovací sadu, je udržet více testovacích skriptů v držáku místa nazývaném jako Sbírka v Postmanu.

tyto kolekce pak mohou být dále provedeny pomocí sběrného běžce v nástroji.

Sběrný běžec

sběrný běžec může být použit k tomu, aby měl sbírku koncových bodů API se svými testovacími skripty na jednom místě, a proto je postupně spouštěl jeden po druhém. Uživatel potřebuje spustit sbírku jen jednou se všemi požadovanými testovacími daty, testovacími skripty a pro tolik iterací, které člověk může chtít. Výsledkem běhu kolekce je testovací zpráva, dostatečně komplexní pro sledování výkonu API a také pro opětovné spuštění neúspěšných testovacích skriptů.

pro podrobnou studii o sběrných běžcích viz odkaz.

ačkoli uživatelské rozhraní Postman ‚ s collection runner je dost dobré, přesto, abychom mohli integrovat systém s Jenkins, musíme spustit naše sbírky pomocí příkazového řádku. Takže způsob, jak spustit sbírky přes příkazový řádek, je přes Newman.

Newman

Newman je balíček Node Package Manager (NPM), který nám umožňuje spouštět a testovat kolekce přímo z příkazového řádku.

předpoklady:

  • NodeJS a
  • NPM již nainstalován.

příkazy, které mají být spuštěny v prostředí Windows Powershell

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

po dokončení požadovaných instalací je třeba exportovat své sbírky a prostředí do souborů JSON v místním systému. Tyto soubory pak mohou být předány jako argumenty Newman.

kroky k získání prostředí a sbírek v místním systému:

  • klikněte na tlačítko Stáhnout a exportovat v Postman.
  • Stáhněte si kolekci
  • Stáhněte si prostředí
  • otevřete příkazový řádek a zvyšte svá oprávnění. To je důležité pro spuštění skriptu. Spusťte následující příkaz:
Set-ExecutionPolicy-Scope CurrentUserExecution Policy: Unrestrictedpotvrdit tuto změnu: Y

nyní otevřete další příkazový řádek a spusťte následující příkaz:

newman run-e 

přidání poštovních testů do Jenkins

nejprve musíme exportovat naše soubory pošťáků (prostředí a sbírky) a přidat je do gitu spolu s naším skriptem Powershell pro spuštění testů pomocí Jenkins build.

“ přidejte soubory pošťáka do kořenového adresáře projektu.“

říká Jenkinsovi, aby spustil Newman

za tímto účelem napíšeme skript, který volá Newmana a předává mu soubory prostředí a sbírky JSON.

#powershell.exe-executionpolicy bypass-command "& '%WORKSPACE%\Jenkins_PostmanDemo. ps1 ' "echo" uvnitř Powershell skriptu " $SourceFilePath = $env:WORKSPACE$FilenamePostfix ="*.pošťák_kolekce.json "$EnvironmentFile = " Demo-OpenWeatherMap.pošťák_prostředí.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. V opačném případě nebude příkaz "newman" rozpoznán.# Můžete nainstalovat NPM a Newman jako uživatele a zkopírovat adresář ~Roaming\npm v thec: \ drive. #cd C:\Users\\AppData\Roaming\npm\node_modules\newman\bincd C:\npm\node_modules\newman\bin# Loop přes json soubory a spustit newman spustit pošťák testsforeach ($soubor v $JsonFiles) {$collectionfilepath = "$SourceFilePath\$File " $environmentfilepath = "$SourceFilePath\$EnvironmentFile " node newman run $collectionfilepath-e $environmentfilepath -- disable-unicode} exit $LASTEXITCODE

– ‚ukončit $LASTEXITCODE‘: Při zadání tohoto příkazu uvidíte výsledek posledního příkazu. Děláme to proto, abychom se ujistili, že v každé smyčce je příkaz Newman úspěšný. Pokud některý z testů selže, musíme skript zastavit a ukončit 1. To bude mít za následek neúspěšné stavět na Jenkins.

přidání skriptu do Jenkins

kroky:

  • přihlaste se do Jenkins a vytvořte Freestyle Projekt.
  • začněte konfigurací tohoto projektu tak, aby vytáhl repo kód z Gitu.
  • na kartě Obecné přejděte do části sestavení a přidejte následující příkaz:
powershell.exe-executionpolicy bypass-command "& '%WORKSPACE%\Jenkins_PostmanDemo. ps1'

**jeden může nakonfigurovat sekci e-mailové oznámení pro konfiguraci e-mailové upozornění na selhání sestavení.

spuštění sestavení a sledování výsledků

zkuste spustit projekt a prozkoumat výsledky.

jeden může rozeznat úspěšný vstup do skriptu powershell s příkazem „Inside Powershell script“ ve výstupu Jenkins.

závěr

zlepšení kontinuální integrace s využitím Postman, Newman a Jenkins přidává další vrstvu zajištění kvality do našeho životního cyklu vývoje. I když se jedná o obrovský krok v automatizaci, musíme zdůraznit skutečnost, že naše pokrytí testů závisí na kvalitě našich testovacích skriptů.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.