how automate api requests using rest assured
In questo tutorial impareremo ad automatizzare le richieste API utilizzando REST Assured durante l'esecuzione di script di test su Jenkins:
Nella seconda esercitazione della serie di esercitazioni sull'API REST, abbiamo appreso diversi tipi di codici di risposta, richieste REST, best practice REST e test API utilizzando POSTMAN.
RIPOSO i servizi Web stanno diventando popolari giorno dopo giorno grazie alla loro facilità di sviluppo, implementazione, accesso e quindi esecuzione. Inoltre, sono leggeri e non hanno standard rigidi da seguire.
Tuttavia, quando esiste un numero maggiore di servizi che devono essere eseguiti in ogni nuova build, diventa un incubo per il tester e per il costo del progetto. Anche in questo caso, alcuni servizi sono interni relativi al progetto stesso e alcuni sono costruiti per essere utilizzati da terze parti.
Così è nata l'idea dell'automazione. Sono disponibili diversi strumenti per automatizzare i servizi REST come:
- vRest
- HttpMaster
- Parasoft
- Stia tranquillo
RestAssured è uno strumento di automazione popolare tra i tester. Vediamo perché è un'opzione preferita.
Cosa imparerai:
Perché RESTAssured?
- È open source, quindi qualsiasi organizzazione può utilizzarlo per le proprie esigenze di progetto.
- REST Assured è una libreria Java, quindi non si presenta come una GUI come altri strumenti. È un framework per testare i servizi REST in Java.
- Fornisce un DSL (Domain-Specific Language) per creare uno script di automazione, utilizza qualsiasi linguaggio nativo come Java e testa l'API Web RESTful.
- Supporta il formato XML e JSON per la richiesta, le risposte.
- Agisce come un client senza testa.
- Possiamo personalizzare la richiesta che invieremo al server utilizzando questa libreria.
- Inoltre, può testare una combinazione varia di logica aziendale complessa.
- È in grado di recuperare il codice di stato, le risposte, il corpo della risposta, le intestazioni dal server per la richiesta inviata.
- Abilita lo stile BDD di scrittura di script di test, ovvero nel formato GIVEN-WHEN-THEN in modo che qualsiasi membro del team aziendale, in particolare dal background non IT, possa anche visualizzarlo e comprendere la logica e la copertura del test.
In questo tutorial, automatizzeremo le richieste che abbiamo creato manualmente in precedenza nel primo tutorial sull'API REST tramite POSTMAN e discuteremo anche di uno strumento commerciale chiamato GITHUB.
Automatizzazione delle richieste API Web utilizzando REST Assured
In questo tutorial, eseguiremo un'automazione end-to-end, ovvero creare una classe Java ed eseguirla da Jenkins.
Prerequisiti:
unix trova la differenza tra due file
- I destinatari previsti devono avere una conoscenza pratica di Eclipse IDE, Maven, TestNG, ReportNG.
- I destinatari dovrebbero anche essere a conoscenza di Jenkins.
- È necessaria una connessione a Internet se si accede a servizi distribuiti sul Web. Nel caso in cui stiamo accedendo a servizi distribuiti localmente, in tal caso, assicurati che il tester ne abbia i diritti.
- Se stiamo automatizzando siti commerciali protetti, in tal caso, assicurati che il token di autorizzazione, i token API, le chiavi API, ecc. Funzionino correttamente e siano forniti al tester, che sta attualmente automatizzando lo script.
URL di test
- http://jsonplaceholder.typicode.com è attivo e funzionante
- L'utente dispone di credenziali valide GitHub
Impostazioni ambientali
# 1) Installa Eclipse IDE
Prima di tutto, dobbiamo scaricare l'IDE Eclipse dal sito ufficiale di Eclisse.
Quindi installa l'IDE. Imposta percorso, variabile ambientale JAVA_HOME correttamente. Tenere il percorso JDK, JRE a portata di mano per un utilizzo futuro. Una volta installato Eclipse, crea / imposta un'area di lavoro e apri l'area di lavoro.
Nel mio caso è:
#Due) Crea un progetto Maven
Assicurati di aver configurato la casa Maven sulle variabili ambientali.
# 3) Aggiungi tutte le dipendenze rilevanti e necessarie, i plugin relativi a REST-ASSURED, TESTNG, REPORTNG a pom.xml.
Ecco un esempio pom.xml.
4.0.0 com restapi 2.9.1-SNAPSHOT jar restapi http://maven.apache.org UTF-8 junit junit 3.8.1 test org.testng testng 6.11 com.jayway.restassured rest-assured 2.9.0 com.jayway.jsonpath json-path 2.2.0 com.jayway.restassured json-schema-validator 2.9.0 com.google.code.gson gson 2.6.2 test org.hamcrest hamcrest-junit 2.0.0.0 org.hamcrest hamcrest-all 1.3 commons-io commons-io 2.4 io.rest-assured rest-assured-common 3.0.1 org.uncommons reportng 1.1.4 test org.testng testng com.google.inject guice 3.0 org.apache.maven.plugins maven-surefire-plugin 2.14.1 ${env} listener org.uncommons.reportng.HTMLReporter, org.uncommons.reportng.JUnitXMLReporter Tutorials.xml
# 4) Aggiungi i jar richiesti al percorso di compilazione dei progetti Maven.
Normalmente si tratta di file di libreria che rientrano in un jar garantito da REST, TESTNG, REPORTNG. Anche se abbiamo aggiunto la dipendenza, plug-in sul file pom.xml ma a volte si verificano ancora degli errori, dobbiamo aggiungere questi barattoli / librerie per costruire il percorso del progetto maven in modo da prevenire errori (se presenti).
Tuttavia, quando creiamo progetti Java invece di progetti Maven, in tal caso, dobbiamo tenere questi barattoli, librerie a portata di mano e usarli come e quando necessario.
# 5) Installa JENKINS (su Windows)
Scarica Jenkins da jenkins.io/download/.
Quindi, apri il setup, segui i passaggi fino a quando non è installato correttamente.
Una volta installato, dobbiamo avviare JENKINS, possiamo fare lo stesso da un prompt dei comandi.
C: Programmi Jenkins> java -jar jenkins.war –httpPort = 9090.
Una volta visualizzato il messaggio precedente, è necessario attendere ancora un po 'di tempo per visualizzare il messaggio seguente.
Come possiamo vedere l'ultimo messaggio nella schermata sopra in cui Jenkins è completamente attivo e in esecuzione, quindi ora possiamo avviare Jenkins utilizzando il seguente URL.
http: // localhost: 9090 /
La prima volta potrebbe volerci del tempo, ma in seguito sarà più veloce. Dopodiché, dobbiamo creare un utente.
Una volta creato l'utente, dobbiamo riavviare Jenkins e accedere all'interfaccia utente con la password.
Una volta installato Jenkin, possiamo installare i plugin su Gestisci Jenkins> Configurazione strumento globale (anche durante l'installazione di Jenkin).
Creazione di script di automazione
# 6) Possiamo creare una nuova CLASSE JAVA e convertirla in TESNG o creare direttamente una CLASSE TESTNG seguita dalla creazione di un nuovo file XML (testng.xml).
Per semplicità, sono state create due classi Java
# 1) Tutorial1.java - Questo file contiene l'utilizzo di tutti i metodi come GET, POST, PUT, PATCH, DELETE, LOGREQUEST, LOGRESPONSE, ASSERT utilizzando un URL di test fittizio https: jsonplaceholder.typicode.com.
Anche se l'URL si comporta come un URL originale restituendo tali risposte, ma in realtà sul server non viene apportata alcuna modifica. È solo per dimostrare le proprietà e la reazione dei servizi Web quando ricevono una richiesta da un client.
# 2) Tutorial2.java - Questo file contiene l'esempio in tempo reale di GitHub in cui leggeremo il commento aggiunto a un gist.
Nota : GitHub richiede l'autenticazione, quindi dobbiamo generare il token API o l'autorizzazione di base una volta effettuato l'accesso a GitHub - impostazioni oppure possiamo generare il token di autorizzazione dallo stesso POSTMAN
TESNG.XML
Ecco il file XML che eseguirà entrambi Tutorial1.java e Tutorial2.java
A scopo dimostrativo, ho escluso tutti i metodi da eseguire e abilitato solo un metodo GET di Tutorial1.java da eseguire. Tuttavia, se vogliamo vedere tutti i metodi eseguiti, dobbiamo sostituirli con il file XML di TestNG. Nel nostro caso il nome del file TestNG è testng1.xml.
Ora se eseguiamo quanto sopra file testng1.xml su Eclipse quindi otterremo quanto segue output della console.
(TestNGContentHandler) (WARN) Si consiglia vivamente di aggiungere '' all'inizio del file, altrimenti TestNG potrebbe non riuscire o non funzionare come previsto.
(TestNG) In esecuzione:
D: RestAssured restapi testng1.xml
*** OTTIENI METODO ***
Userid - da (1) a - (3) Title - (se è fastidioso che l'esercizio sia doloroso o) corpo - (e giusto, ma la legge
E lo sono tutti di elezione o per il piacere dei ciechi
o denunciando qualsiasi dolore e piacere che ne derivano
ed è disposto ae dalla fatica di un odioso, o disagio; e il)
*** OTTIENI IL METODO FINISCE ***
————————————————–
Tutorial API REST
Test totali eseguiti: 1, Errori: 0, Salti: 0
————————————————-
Ecco il risultato del test della suite.
Ecco il report predefinito generato da TestNG.
Ecco il report generato da ReportNG.
Poiché abbiamo già configurato ReportNG, possiamo quindi aspettarci una visione chiara del conteggio totale passato e non riuscito come sopra.
Esecuzione di script di test utilizzando il prompt dei comandi
- Dobbiamo avviare il prompt dei comandi
- Imposta la directory di lavoro come posizione dell'area di lavoro
- Trova il contenitore / posizione di destinazione
- Trova / crea la posizione della libreria
- Innanzitutto, abbiamo bisogno di un set, la directory in cui esiste il progetto. Nel mio caso è D: RestAssured restapi
- Java - parola chiave
- cp - È il classpath, significa il percorso in cui esiste la classe Java nel progetto
- Bersaglio - È uguale alla cartella bin quando lavoriamo su un progetto Java. Dato che stiamo lavorando al progetto Maven, quindi avremo questa cartella. Sotto questa cartella, possiamo avere altre due cartelle: classi, classi di prova. La classe Java effettiva deve esistere tra queste due cartelle
- Lib - Questa cartella conterrà tutti i jar che abbiamo utilizzato durante l'esecuzione dello script di test da Eclipse. In alcuni casi, la cartella potrebbe non essere presente. Quindi, potrebbe essere necessario creare una cartella e mantenere tutti i jar, gli eseguibili, ecc. Al suo interno.
- org.testng.TestNG testng1.xml - Questa è come una sintassi. L'ultima parte è testng1.xml è il file di risorse di TestNG, che sarà chiamato per eseguire gli script di test desiderati
Il comando completo sarà
java -cp target / test-classes; target / Classes; lib / * org.testng.TestNG testng1.xml
Dopodiché premi invio
Nota: Possiamo vedere la cartella bin mentre lavoriamo su un progetto Java. Tuttavia, se stiamo lavorando in un progetto Maven, avremo una cartella di destinazione e classi normali, sotto di essa sarà presente la cartella delle classi di test.
Creazione di file BAT ed esecuzione di script di test
Invece di aprire il prompt dei comandi ed eseguire il comando sopra per eseguire lo script di test, possiamo mantenere il comando in un file di testo e durante il salvataggio gli diamo un nome come,
'Run.bat' (assicurati di mantenere '' intorno a run.bat)
Ecco come appare una volta creato.
Ora fai doppio clic su 'esegui'
Il prompt dei comandi si aprirà ed eseguirà lo script di test e una volta completata l'esecuzione, il prompt dei comandi verrà chiuso.
miglior pulitore di file spazzatura gratuito per Windows 10
Integrazione di JENKINS con Maven, Java
Dobbiamo fare 4-5 configurazioni a Jenkins per integrarlo con Maven, Java ed eseguire lo stesso.
Una volta effettuato l'accesso a Jenkins,
Goto Manager Jenkins >> Configurazione globale degli strumenti
imposta il percorso di installazione JDK
Nota : Assicurati che la versione di Jenkin supporti la versione JDK / Java. La versione 2.73 di Jenkins richiede almeno la versione 1.8 JDK / JAVA altrimenti creerà problemi durante l'esecuzione degli script di test.
Imposta il percorso di installazione di Maven
Successivamente, Goto Manager Jenkins >> Configura i sistemi
Imposta il percorso della variabile ambientale
Il prossimo, Crea un nuovo elemento
Dobbiamo fare clic su Crea un nuovo collegamento, specificare il file nome per il lavoro, seleziona il tipo di progetto come Stile libero . Non c'è bisogno di preoccuparsi di altre cose fin d'ora.
Una volta creato il lavoro, sarà simile a questo.
Ora fai clic sul lavoro
Segui i passaggi seguenti:
- Fare clic sul collegamento di configurazione nel pannello di sinistra.
- Scorri verso il basso la scheda Generale e fai clic sul pulsante Avanzate.
- Seleziona la casella di controllo dell'area di lavoro personalizzata e specifica la posizione della cartella del progetto.
Dopo di che
- Scorri più in basso fino a Build Triggers
- Seleziona la casella di controllo Crea periodicamente
- Imposta un po 'di tempo come indicato di seguito
Scorri verso il basso, imposta il nome di Build. Nel nostro caso, è un comando batch di Windows eseguibile.
Si trova nella stessa posizione in cui abbiamo conservato il file run.bat in precedenza che è la cartella D: RestAssured restapi
Salva tutte le modifiche sopra apportate finora.
Ora, attendi che il cron job venga eseguito. Possiamo vedere che la build è iniziata.
Una volta che la build è stata eseguita con successo, quindi dobbiamo fare clic sulla build # 20 come specificato nell'immagine sopra.
Clicca sul Uscita console link nel pannello di sinistra.
Ora dovremmo essere in grado di vedere il seguente output.
Conclusione
REST ASSURED è una libreria JAVA molto utile per automatizzare le API REST indipendentemente dalla lingua. Ha molte opzioni integrate. Inoltre, ha molte versioni con funzioni interessanti, opzioni incluse in esso. Supporta molti formati come richieste come XML, JSON, ecc.
In questo tutorial, abbiamo spiegato come automatizzare le richieste API utilizzando RESTAssured durante l'esecuzione di script di test utilizzando Jenkins. Abbiamo anche spiegato perché Rest Assured è una scelta migliore per automatizzare le richieste API.
Ci auguriamo che ti sia piaciuto leggere questa serie di tutorial sull'API Rest!
Lettura consigliata
- Test API REST con cetriolo utilizzando l'approccio BDD
- 10 migliori strumenti di test API nel 2021 (strumenti di test API SOAP e REST)
- Test API REST con Spring RestTemplate e TestNG
- Lavorare con le richieste HTTP in JMeter
- Esercitazione POSTMAN: test API utilizzando POSTMAN
- Le 20 domande e risposte più importanti dell'intervista sui test API
- I 10 migliori strumenti di gestione delle API con confronto delle funzionalità
- Le 36 principali domande dell'intervista a Jenkins (per il 2021)