gatling tutorial getting started with gatling load testing
Questo tutorial video su Gatling fornisce una revisione completa di Gatling, incluse funzionalità, passaggi di installazione ed esempi di utilizzo di Gatling Simulation Recorder:
Gatling è un framework di test open source basato su Scala. Sta guadagnando molta popolarità in questi giorni con oltre 3 milioni di download negli ultimi 3 anni.
È disponibile come versione open-source e come variante aziendale chiamata Gatling Frontline con più integrazioni e supporto dal team Gatling. Ma tutti i casi d'uso pratici possono essere elaborati utilizzando l'edizione della community Gatling che è gratuita e open-source.
Cosa imparerai:
Tutorial video Gatling
Vediamo i passaggi necessari per iniziare con Gatling. Tratteremo anche alcune delle caratteristiche importanti di Gatling come parte di questo tutorial.
Ecco un video tutorial su Gatling Introduzione:
Installazione
Gatling può essere installato in 2 modi diversi. Questo può essere spiegato come segue:
# 1) Utilizzando Gatling come strumento autonomo, puoi semplicemente installare il programma di installazione / applicazione, utilizzando il Gatling ufficiale sito web e seguire le istruzioni di installazione.
Si noti che la cartella zip installata contiene sia shell che file batch che rendono Gatling adatto per essere utilizzato su diversi sistemi operativi come Windows, MacOS, Linux / Unix, ecc.
Il programma di installazione non è altro che un registratore di script Gatling basato su Java, che registra le azioni dell'utente attraverso il browser nello strumento e che potrebbe quindi essere convertito in uno script o in uno scenario che deve essere caricato e testato. Lo vedremo in dettaglio nelle prossime sezioni.
#Due) Un altro modo per installare / utilizzare Gatling è usarlo come pacchetto tramite Maven / Gradle o tramite gli strumenti di compilazione Scala.
Un punto importante da notare qui è che gli script Gatling sono tutti basati su Scala, quindi la creazione di un progetto basato su Scala potrebbe utilizzare la libreria Gatling che può essere importata da qualsiasi strumento di compilazione come Maven / Gradle o SBT.
Caratteristiche di Gatling
Questi sono i seguenti:
# 1) Architettura asincrona e thread leggeri
Gatling ha un'architettura avanzata basata sul toolkit Akka ed è completamente asincrona. Questo gli dà un vantaggio rispetto ad altri strumenti di test delle prestazioni come JMeter in cui ogni thread corrisponde a un singolo utente.
In questo caso, un singolo thread può simulare più utenti poiché dispone di un'architettura di messaggistica tramite il modello Actor.
In poche parole, un test Gatling può gestire un numero di utenti simultanei per macchina rispetto ad altri strumenti come Jmeter e quindi si traduce in un notevole risparmio di CPU e RAM.
Lettura consigliata => Modello dell'attore e architettura asincrona di Gatling
# 2) Il linguaggio specifico del dominio rende i test leggibili
Gli script Gatling sono scritti in Scala e hanno un DSL amichevole che rende gli script altamente leggibili e meno soggetti a errori. Per maggiori dettagli su Gatling DSL, fare riferimento Qui .
# 3) Supporto agnostico del protocollo
Gatling supporta un'ampia varietà di protocolli tra cui HTTP, HTTPS e Web socket. Ha anche estensioni per testare il carico di query / script SQL.
# 4) Rapporti e asserzioni
Gatling fornisce supporto immediato per la creazione di report HTML dettagliati per gli scenari che vengono eseguiti e ha anche capacità per applicare asserzioni sulle singole richieste negli scenari - Per esempio, Tempi di risposta, convalida del contenuto JSON, ecc.
# 5) Registratore di test basato su GUI amichevole
Gatling viene fornito con un registratore di test grafico facile da usare che può generare script di simulazione registrando l'attività dell'utente o le azioni dell'utente su un browser web. Gli script generati sono script basati su Scala che potrebbero essere eseguiti in futuro e possono essere modificati secondo i requisiti.
Applicazione in prova e registrazione di script di esempio
Per creare una simulazione di esempio, useremo Applicazione ospitata ufficialmente fornita da Gatling
Utilizzeremo il registratore di simulazione di Gatling per iniziare a creare il carico e a eseguire i test delle prestazioni. Prima di andare oltre, discutiamo lo scenario in cui vogliamo caricare il test.
Lo scenario è un caso d'uso che stiamo cercando di caricare test. Ciò significa essenzialmente che vogliamo imitare un'azione dell'utente in uno scenario o in una serie di passaggi che devono essere messi alla prova.
Per esempio, Supponiamo che un utente acceda a qualsiasi sito di e-commerce come Amazon.com e cerchi un prodotto, lo aggiunga al carrello e infine effettui il checkout con le informazioni di pagamento.
L'intera azione dell'utente è un unico scenario che contiene singoli passaggi come
- Navigando al sito web Amazon.com.
- In attesa del caricamento della pagina.
- Ricerca di un prodotto tramite la barra di ricerca del prodotto.
- Aggiunta del prodotto al carrello.
- Andando al carrello e checkout con il prodotto.
- Effettuare il pagamento.
Per caricare il test di questo scenario completo, dal punto di vista del sistema o del server, dobbiamo capire che non è altro che una raccolta o una serie di chiamate API che vengono effettuate al server back-end, ed è ciò che vogliamo nel test delle prestazioni.
Per questo esempio, utilizzeremo lo scenario seguente sull'applicazione in hosting Gatling:
# 1) Navigare verso Applicazione in hosting Gatling .
#Due) Fare clic su 'Aggiungi un nuovo computer'.
# 3) Selezionare il nome del computer come Apple e il nome dell'azienda come 'Apple Inc' dal menu a discesa come mostrato nell'immagine sottostante.
# 4) Fare clic su 'Crea questo computer' dopo aver inserito i dettagli.
Imposta il registratore Gatling e registra il primo script
In questa sezione, discuteremo come impostare il registratore di test Gatling per creare una simulazione per lo scenario che abbiamo discusso nella sezione precedente.
Useremo il registratore di simulazione Gatling che è in una forma molto semplice, un proxy HTTP: devi avere familiarità con altri strumenti di registrazione HTTP come Fiddler o proxy Http chrome, ecc. Quindi, il registratore Gatling è simile alle funzionalità aggiuntive di conversione del registrazione in uno script di simulazione di test.
Quindi vediamo prima come impostare il registratore Gatling:
# 1) Una volta installata la cartella zip Gatling, decomprimere semplicemente la cartella nella posizione in cui si desidera installare Gatling.
qual è la differenza tra controllo di qualità e garanzia di qualità
#Due) Dopo questo passaggio, dobbiamo impostare 2 variabili di ambiente denominate - GATLING_HOME (per la home directory di Gatling) e GATLING_CONF (per la posizione della cartella di configurazione di Gatling).
A seconda del tipo di sistema operativo, (ad esempio Windows o Mac o Linux), imposta queste variabili di ambiente con i seguenti valori:
GATLING_HOME = {gatling-install-directory}
Esempio:
GATLING_HOME=/Users/username/gatling-charts-highcharts-bundle-3.3.0/
GATLINE_CONF = {gatling-install-directory} / conf
Esempio:
GATLING_CONF=/Users/username/gatling-charts-highcharts-bundle-3.3.0/conf
Una volta che le variabili sono impostate per la convalida, puoi semplicemente premere sul terminale il comando - Esportazione | grip 'GATLING' e l'output dovrebbe mostrare le 2 variabili d'ambiente che abbiamo appena impostato.
# 3) Una volta impostate queste variabili di ambiente, è necessario avviare il nostro registratore di script Gatling. Per il sistema operativo basato su Windows, è disponibile un file batch con l'installazione Gatling e per il sistema operativo basato su Linux / MacOS, è fornito un file shell.
Di seguito è riportata la struttura dei file della cartella bin:
# 4) Quindi, a seconda del tipo di sistema operativo, possiamo scegliere il tipo di file da eseguire per il registratore in esecuzione. Tieni presente che ci sono 2 file qui che utilizzeremo:
- File Gatling.sh / Gatling.bat - per eseguire lo script di simulazione.
- File Recorder.sh / recorder.bat - per eseguire / aprire il registratore di simulazione Gatling.
# 5) Consente di eseguire lo script del registratore per aprire il registratore Gatling. Utilizzare il terminale Mac / Linux per eseguire lo script della shell (o eseguire direttamente il file batch di Windows).
. /$GATLING_HOME/bin/recorder.sh
# 6) Se le variabili di ambiente sono impostate correttamente, il comando precedente dovrebbe aprire il registratore di script Gatling.
# 7) Notare la porta Http / https nel registratore (la selezione predefinita è 8000 o 8080): questa è la porta in cui è configurato il listener del proxy di traffico Http di Gatling. Possiamo modificare questo numero di porta secondo la nostra convenienza (oppure possiamo continuare con i valori predefiniti).
con cosa aprire i file json
# 8) Ora configuriamo il proxy Chrome per ascoltare questa porta, ovvero essenzialmente vogliamo instradare il nostro traffico Http dal browser attraverso questo listener o registratore proxy.
Segui questo collegamento per configurare un proxy su Chrome per diversi sistemi operativi.
# 9) Una volta configurata la porta, eseguiremo il nostro scenario sul file Applicazione in hosting Gatling.
# 10) Prima che inizi l'esecuzione dello scenario, sarà necessario configurare il nome del pacchetto e il nome della classe per lo script di test risultante, quindi avviare il listener proxy semplicemente facendo clic sul pulsante 'Avvia' nel registratore di script.
#undici) Non appena si avvia il registratore proxy, verrà visualizzata una nuova finestra, che essenzialmente cattura tutte le richieste che vengono attivate quando lo scenario viene eseguito sul browser.
# 12) Navigare verso Applicazione in hosting Gatling nel browser.
Se puoi vedere che la richiesta è registrata nella finestra del registratore, significa che la configurazione del proxy per il browser è corretta e il registratore Gatling è ora in grado di registrare le richieste secondo lo scenario di test in esecuzione (in caso contrario, torna al passaggio # 7 per correggere la configurazione del proxy per browser / sistema).
# 13) Ora, una volta che siamo sicuri che la configurazione funzioni correttamente, fai clic su 'Cancella' per rimuovere tutto dal registratore e iniziare a eseguire lo scenario come indicato di seguito:
- Navigare verso Applicazione in hosting Gatling
- Fare clic su 'Aggiungi un nuovo pulsante computer'. Assicurati di accedere a un nuovo modulo del computer con l'URL del browser come http://computer-database.gatling.io/computers/new
- Ora inserisci i valori nel modulo con - Nome del computer come Apple e azienda come 'Apple inc' dal menu a discesa.
- Fai clic su 'Crea questo computer' e verrai reindirizzato al file homepage
- Questo è l'intero scenario che vogliamo eseguire e creare uno script di automazione utilizzando il registratore di script Gatling. Una volta eseguiti i passaggi precedenti, il registratore dovrebbe acquisire tutte le chiamate HTTP effettuate e dovrebbe apparire come di seguito.
- Notare che nello script registrato sono presenti anche un paio di comandi 'PAUSA'. Questi non sono altro che il 'tempo di riflessione' che il registratore acquisisce per imitare l'azione dell'utente, ovvero il tempo impiegato tra le richieste. Questi valori possono essere configurati / modificati una volta che lo script è stato eseguito a seconda dei bisogni reali.
# 14) Per completare la creazione dello script, fare clic su 'Stop & Save' nella finestra del registratore.
#quindici) Lo script di simulazione dovrebbe essere creato nella directory o nella cartella di simulazione visualizzata nella schermata di configurazione del registratore Gatling.
Comprensione dello script di simulazione
Una volta creato lo script per lo scenario eseguito, accedere alla cartella della simulazione e aprire lo script.
Si noti che lo script verrà creato con lo stesso pacchetto strutturato specificato prima di avviare il registratore - nel nostro caso, sarà com.learn.gatling e il nome della classe sarà 'AddProduct'.
Apriamo il file AddProduct.scala e proviamo a passare attraverso le diverse sezioni dello script.
Questo può essere spiegato come segue:
# 1) Configurazione dell'installazione :cioè httpProtocol e intestazioni - In questa sezione viene eseguita la configurazione generale dei dati per lo script, come ad esempio:
- Tipo di protocollo: Http o https,
- Altre cose come baseUrl da utilizzare nelle richieste successive.
- Informazioni sull'intestazione: informazioni sull'intestazione comuni e sulle intestazioni da inviare con le singole richieste. Fare riferimento a header_0 e headers_2 nello snippet di codice di seguito:
val httpProtocol = http .baseUrl('http://computer-database.gatling.io') .inferHtmlResources(BlackList('''.*.js''', '''.*.css''', '''.*.gif''', '''.*.jpeg''', '''.*.jpg''', '''.*.ico''', '''.*.woff''', '''.*.woff2''', '''.*.(t|o)tf''', '''.*.png''', '''.*detectportal.firefox.com.*'''), WhiteList()) .acceptHeader ('text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8, application/signed-exchange;v=b3') .acceptEncodingHeader('gzip, deflate') .acceptLanguageHeader('en-GB,en-US;q=0.9,en;q=0.8') .upgradeInsecureRequestsHeader('1') .userAgentHeader('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36') val headers_0 = Map('Proxy-Connection' -> 'keep-alive') val headers_2 = Map( 'Origin' -> 'http://computer-database.gatling.io', 'Proxy-Connection' -> 'keep-alive')
# 2) Definizione dello scenario: Contiene lo scenario effettivo e l'ordine delle richieste che devono essere eseguite per ricreare lo scenario in esecuzione nella finestra del browser.
Inoltre, un punto importante da notare qui è che abbiamo appena menzionato l'URL relativo qui per le richieste, invece dell'URL completo. Questo perché useremo Configurazione httpProtocol abbiamo discusso al punto # 1, dove vengono definiti i dati di configurazione dello scenario.
val scn = scenario('AddProduct') .exec(http('request_0') .get('/computers') .headers(headers_0) .resources(http('request_1') .get('/computers/new') .headers(headers_0))) .pause(4) .exec(http('request_2') .post('/computers') .headers(headers_2) .formParam('name', 'apple') .formParam('introduced', '') .formParam('discontinued', '') .formParam('company', '1'))
# 3) Esecuzione dello scenario: Questa è la sezione più importante che contiene i passaggi per l'impostazione dello scenario.
La configurazione inject qui è il numero di utenti / thread o, in altre parole, il carico con cui vogliamo testare questo scenario.
Il valore predefinito per un numero di utenti è sempre 1 e può essere modificato prima dell'esecuzione dello scenario.
Inoltre, tieni presente che stiamo anche utilizzando la definizione httpProtocol che abbiamo discusso al punto # 1 che contiene tutte le configurazioni di base per lo scenario da eseguire.
setUp (scn.inject (atOnceUsers (1))). protocolli (httpProtocol)
Esamineremo maggiori dettagli sull'iniezione e il caricamento della configurazione nel prossimo tutorial.
Esecuzione del test utilizzando lo script di simulazione
Ora vedremo come eseguire lo scenario utilizzando questo script di simulazione creato utilizzando il registratore. Lo script risultante che viene creato è in realtà una classe basata su Scala che contiene dettagli sullo scenario che è stato eseguito tramite il browser.
Ecco un video tutorial per Gatling Script Execution:
L'installazione di Gatling viene fornita con uno script di shell (per gli utenti Windows, è uno script batch) che potrebbe essere utilizzato per eseguire questa simulazione.
Seguire i passaggi seguenti per eseguire la simulazione creata:
# 1) Vai alla cartella bin dell'installazione di Gatling o vai semplicemente a - $ GATLING_HOME / bin
#Due) Eseguire il file Gatling.sh per sistemi operativi Linux / Mac (o il file Gatling.bat per utenti Windows).
# 3) In caso di più file di script presenti nella cartella di simulazione, lo script chiederà all'utente di selezionare la simulazione che l'utente desidera eseguire (per simulare ciò, creare lo stesso scenario in diversi pacchetti e quando viene eseguito lo script Gatling, è possibile vedere che visualizza 2 diversi script).
# 4) La simulazione è selezionata (o è impostata di default sulla simulazione presente nella cartella se è disponibile un solo script di simulazione).
# 5) Lo script ora richiede di aggiungere una descrizione di esecuzione facoltativa. Puoi semplicemente ignorarlo e premere Invio per avviare l'esecuzione della simulazione.
# 6) Mentre la simulazione è in esecuzione, puoi vedere i rapporti di esecuzione stampati sul terminale e parametri come tempo di risposta, richieste totali, esito positivo / negativo, ecc. Verranno visualizzati una vista riepilogativa al termine dell'esecuzione dello scenario.
# 7) Gatling genera anche un report dettagliato basato su HTML alla fine del completamento dell'esecuzione dello scenario che contiene molti punti dati diversi rispetto allo scenario eseguito.
Esamineremo i dettagli del report generato nel prossimo tutorial.
Vantaggi dell'utilizzo di Gatling
Gatling offre molte funzionalità ricche di funzionalità al fine di costruire una buona suite di test di automazione delle prestazioni sfruttando l'ampia Gatling DSL e un crescente supporto della comunità per assistenza e risposte alle domande.
È importante notare qui che, a differenza di altri strumenti come JMeter, Gatling comporta una curva di apprendimento ripida, ma al posto di ciò, offre molte funzionalità di programmazione per creare un set robusto e completamente funzionale di script di simulazione di test di carico e prestazioni.
Alcuni di questi vantaggi sono i seguenti:
- È leggero e consente di utilizzare un singolo thread per più di una richiesta, a differenza della maggior parte degli altri strumenti di prestazione in cui un thread è equiparato a un utente.
- L'utilizzo di un singolo thread per più richieste consente a Gatling di scalare di più e generare un carico maggiore anche su una singola macchina.
- Gatling offre la capacità di funzionare in modalità distribuita quando c'è un carico enorme che deve essere simulato.
- Fornisce supporto per molti altri protocolli diversi da HTTP,per esempio, Websocket, MQTT, JDBC, ecc. Possono essere tutti testati sulle prestazioni utilizzando Gatling.
- Gatling fornisce un DSL ricco di funzionalità - Domain Specific Language, che ha una sintassi semplice e fornisce potenti funzionalità quando combinato per creare uno script di simulazione.
- Fornisce inoltre molte funzionalità di controllo della simulazione complesse come costrutti di loop, simulazione del tempo di riflessione, limitazione delle richieste oltre l'RPS desiderato, ecc.
- Ha ricche funzionalità di reporting out of the box e possono anche essere personalizzati a seconda dei requisiti.
Conclusione
In questo tutorial, abbiamo toccato le basi dell'utilizzo di Gatling come strumento di test di carico preferito. Con l'espressivo DSL e l'eccellente supporto per il protocollo HTTP, Gatling sta rapidamente guadagnando popolarità per essere utilizzato come strumento preferito da molti.
Abbiamo anche imparato a conoscere il registratore Gatling e lo script runner Gatling con uno script di simulazione di esempio che ha aiutato a comprendere il concetto di base della registrazione di uno script di simulazione che potrebbe essere eseguito in futuro utilizzando l'esecutore Gatling Script.
Nel prossimo tutorial, tratteremo la scrittura di script Gatling come progetti Scala, ovvero senza utilizzare il registratore e comprendere i modelli di report che vengono generati quando Gatling completa l'esecuzione della simulazione.
Lettura consigliata
- Test di carico con HP LoadRunner Tutorial
- Correlazione - Test di carico con LoadRunner
- Tutorial sul Soak Test - Cos'è il Soak Test
- Test di carico con LoadUI: uno strumento di test di carico gratuito e open source
- Revisione di WebLOAD - Introduzione allo strumento di test di carico WebLOAD
- Tutorial sui test distruttivi e non distruttivi
- Esercitazione sul test di usabilità: una guida introduttiva completa
- Test delle prestazioni vs test di carico vs stress test (differenza)