Amarengo

Articles and news

Humble Bits

API testing utilizzando Postman, Newman e Jenkins

API testing è un tipo di test software in cui un ingegnere prova non solo la funzionalità, ma le prestazioni, l’affidabilità e la sicurezza per un’applicazione. Le API vengono testate per esaminare se l’applicazione funzionerebbe come previsto, poiché le API sono il nucleo delle funzionalità di un’applicazione.

I test API durante lo sviluppo possono rivelare problemi con API, server, altri servizi, rete e altro, quelli che non si possono scoprire o risolvere facilmente dopo la distribuzione.

Tuttavia, testare le API è difficile. Invece di verificare la risposta di un endpoint, è possibile eseguire test di integrazione con Postman per esaminare e convalidare le risposte. I team in questi giorni potrebbero anche voler automatizzare l’esecuzione di questi test non appena viene eseguita una distribuzione. Un approccio che possiamo adottare è quello di far eseguire i nostri test di integrazione ogni volta che uno sviluppatore controlla il codice nel repository.

L’aggiunta di questo livello di controllo di qualità può garantire che le funzionalità esistenti funzionino ancora come ci si aspettava, con un ulteriore vantaggio per gli sviluppatori di convalidare che il loro codice stia facendo esattamente ciò a cui era destinato.

Strumenti per l’automazione dei test API in CI

CI si riferisce all’integrazione continua. Integrazione di script di test e uno strumento di test con il sistema di compilazione continua in cui gli script di test possono essere eseguiti insieme a ogni nuova distribuzione o su base regolare (giornaliera, settimanale o quindicinale)

  1. Postino: Test di integrazione con Postman.
  2. Newman: Creare un file PowerShell che esegue questi test di integrazione tramite riga di comando.
  3. Jenkins: aggiungi un passaggio Post build in Jenkins per eseguire lo script PowerShell ogni volta che viene avviata una build.

Selezione API

Ho implementato questa procedura nel nostro progetto utilizzando le API GPS, ma per istanziare qui, prendiamo le seguenti API:

Apri mappa meteo: API pubbliche gratuite.

Ho scelto questo in quanto è una raccolta gratuita di API a cui chiunque può iscriversi e avere le proprie chiavi API con cui operare.

Crea test di integrazione

Per il primo test, prendiamo una semplice richiesta GET per ottenere Meteo per ID. Per interagire tramite le API, assicurati di utilizzare la chiave API ricevuta durante la sottoscrizione ai servizi OWM.

Passi per il primo test di integrazione

Fai in modo che un ambiente su Postman dica “Mappa meteo” e definisca le variabili di ambiente in esso contenute. .

Aggiungere i prerequisiti nella scheda Pre-Req per impostare il test.

var cityIds=; / / Ottenere un numero casuale tra 0-9var randomCityId = Math.piano ((Matematica.casuale() * 9) + 1);// Imposta una variabile di ambiente sul valore dell'ID città di therandom da arraypostman.setEnvironmentVariable ("CITYID", CITYID)

Ora, nella scheda Test aggiungi lo script di test come segue:

var jsonData = JSON.parse (responseBody); / / Salvataggio del valore "name" di response in un ambiente variablepostman. setEnvironmentVariable("CITYNAME",jsonData.name); pm. test ("Codice di stato è 200", funzione () {pm.response.to.have.status (200);});

Lo script di test di cui sopra ottiene la risposta e il nostro script avvolge la risposta in una variabile chiamata ‘jsonData’. Ora il valore della proprietà name viene salvato in una variabile di ambiente.

Quindi, viene creato il primo test che fallisce se il codice di stato HTTP è diverso da un 200.

Collezioni

Come i test API di cui sopra, si possono avere più script di test per più endpoint. E questi script di test multipli possono essere eseguiti in sequenza per avere una suite di test end to end. Il modo per avere una suite di test è mantenere più script di test in un segnaposto chiamato come Raccolta in Postman.

Queste raccolte possono quindi essere ulteriormente eseguite tramite il corridore di raccolta nello strumento.

Collection Runner

Un collection runner può essere utilizzato per avere una raccolta di endpoint API con i loro script di test in un unico posto e quindi eseguirli uno per uno in modo sequenziale. L’utente deve solo eseguire la raccolta solo una volta con tutti i dati di test richiesti, gli script di test e per tutte le iterazioni che si possono desiderare. Il risultato dell’esecuzione della raccolta è un rapporto di test, abbastanza completo da monitorare le prestazioni delle API e anche da riprovare a eseguire gli script di test falliti.

Per lo studio elaborato sui corridori di raccolta, fare riferimento al link.

Sebbene l’interfaccia utente di Postman’s collection runner sia abbastanza buona, tuttavia, per integrare il sistema con Jenkins, dobbiamo eseguire le nostre collezioni tramite riga di comando. Quindi, un modo per eseguire le raccolte tramite la riga di comando è attraverso Newman.

Newman

Newman è un pacchetto Node Package Manager (NPM) che ci permette di eseguire e testare raccolte direttamente dalla riga di comando.

Requisiti preliminari:

  • NodeJS e
  • NPM già installati.

Comandi da eseguire su Windows Powershell

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

Una volta eseguite le installazioni richieste, è necessario esportare le raccolte e l’Ambiente in file JSON nel sistema locale. Questi file possono quindi essere passati come argomenti a Newman.

Passaggi per ottenere l’ambiente e le raccolte sul sistema locale:

  • Fare clic sul pulsante Scarica ed Esporta in Postman.
  • Scarica la raccolta
  • Scarica l’ambiente
  • Apri il prompt dei comandi e aumenta i tuoi privilegi. Questo è importante per eseguire lo script. Eseguire il seguente comando:
Set-ExecutionPolicy-Scope CurrentUserExecution Policy: Unrestrictedconfirm questa modifica: Y

Ora apri un altro prompt dei comandi ed esegui il seguente comando:

newman run-e 

Aggiunta di test Postman a Jenkins

Dobbiamo prima esportare i nostri file Postman (Ambiente e collezioni) e aggiungerli a GIT, insieme al nostro script Powershell per eseguire i test tramite Jenkins build.

“Aggiungi i file Postman alla radice del progetto.”

Dicendo a Jenkins di eseguire Newman

Per questo scriviamo uno script che chiama Newman e gli passa i file JSON dell’ambiente e della raccolta.

#powershell.exe-executionpolicy bypass-command " &' % WORKSPACE% \ Jenkins_PostmanDemo. ps1 '"echo" All'interno dello script Powershell " Sour SourceFilePath = en env: WORKSPACE Fil FilenamePostfix ="*.postman_collection.json "Environment EnvironmentFile =" Demo-OpenWeatherMap.postman_ambiente.json" # Get all Postman test files = JsonFiles = Get-ChildItem-Path# SourceFilePath-name-Filter Fil FilenamePostfix |Sort-Object-Property CreationTime-Descending # Change to directory where we have NodeJS installed. In caso contrario, il comando 'newman' non verrà riconosciuto.# È possibile installare NPM e Newman come utente e copiare la directory ~ Roaming\npm in theC: \ drive.#cd C:\Users\\AppData\Roaming\npm\node_modules\newman\bincd C:\npm\node_modules\newman\bin# Loop attraverso il json file e di eseguire newman per eseguire il Postino testsforeach ($File $JsonFiles) {$collectionfilepath = "$SourceFilePath\$File"$environmentfilepath = "$SourceFilePath\$EnvironmentFile"nodo newman eseguire $collectionfilepath -e $environmentfilepath --disable-unicode}exit $LASTEXITCODE

– ‘exit $LASTEXITCODE’: Digitando questo comando, vedrai il risultato dell’ultimo comando. Lo facciamo per assicurarci che su ogni ciclo, il comando Newman abbia successo. Se uno qualsiasi dei test fallisce, dobbiamo fermare lo script ed uscire da 1. Si tradurrà in una build fallita su Jenkins.

Aggiunta di script a Jenkins

Passaggi:

  • Accedi a Jenkins e crea un progetto Freestyle.
  • Inizia configurando questo progetto per estrarre il codice repository da Git.
  • Nella scheda Generale, vai alla sezione Build e aggiungi il seguente comando:
powershell.exe-executionpolicy bypass-command "& '% WORKSPACE% \ Jenkins_PostmanDemo. ps1'

**È possibile configurare la sezione di notifica e-mail per configurare un avviso e-mail anche sugli errori di compilazione.

Esecuzione dei risultati di compilazione e monitoraggio

Provare a eseguire il progetto ed esaminare i risultati.

Si può distinguere l’ingresso riuscito nello script powershell con l’istruzione ‘Inside Powershell script’ nell’output di Jenkins.

Conclusione

Migliorare l’integrazione continua utilizzando Postman, Newman e Jenkins aggiunge un altro livello di garanzia della qualità nel nostro ciclo di vita di sviluppo. Anche se questo è un enorme passo avanti nell’automazione, dobbiamo sottolineare il fatto che la nostra copertura di test dipende dalla qualità dei nostri script di test.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.