Introduzione a Gatling

1. Panoramica

Gatling è uno strumento di test di carico che viene fornito con un eccellente supporto del protocollo HTTP , il che lo rende un'ottima scelta per testare il carico di qualsiasi server HTTP .

Questa guida rapida ti mostrerà come impostare uno scenario semplice per testare il carico di un server HTTP .

Gli script di simulazione Gatling sono scritti in Scala , ma non preoccuparti: lo strumento viene in aiuto con una GUI che ci consente di registrare lo scenario. Una volta terminata la registrazione dello scenario, la GUI crea lo script Scala che rappresenta la simulazione.

Dopo aver eseguito la simulazione, abbiamo un report HTML pronto per la presentazione .

Ultimo ma non meno importante, l'architettura di Gatling è asincrona . Questo tipo di architettura ci consente di implementare utenti virtuali come messaggi anziché thread dedicati, rendendoli molto economici in termini di risorse. Pertanto, l'esecuzione di migliaia di utenti virtuali simultanei non è un problema.

Vale anche la pena notare che il motore principale è in realtà indipendente dal protocollo , quindi è perfettamente possibile implementare il supporto per altri protocolli. Ad esempio, Gatling attualmente fornisce anche il supporto JMS .

2. Creazione di un progetto utilizzando l'archetipo

Anche se possiamo ottenere i pacchetti Gatling come .zip , scegliamo di usare Maven Archetype di Gatling . Questo ci consente di integrare Gatling ed eseguirlo in un IDE e semplificare la manutenzione del progetto in un sistema di controllo della versione. Fai attenzione perché i Gatling richiedono un JDK8 .

Dalla riga di comando, digita:

mvn archetype:generate

Quindi, quando richiesto:

Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains):

Genere:

gatling

Dovresti quindi vedere:

Choose archetype: 1: remote -> io.gatling.highcharts:gatling-highcharts-maven-archetype (gatling-highcharts-maven-archetype)

Tipo :

1

per selezionare l'archetipo, quindi selezionare la versione da utilizzare (scegliere l'ultima versione).

Selezionare groupId , artifactId , versione e nome del pacchetto per le classi prima di confermare la creazione dell'archetipo.

Termina importando l'archetipo in un IDE, ad esempio in Scala IDE (basato su Eclipse) o in IntelliJ IDEA.

3. Definire uno scenario

Prima di avviare il registratore, dobbiamo definire uno scenario . Sarà una rappresentazione di ciò che accade realmente quando gli utenti navigano in un'applicazione web.

In questo tutorial, utilizzeremo l'applicazione fornita dal team di Gatling a scopo di esempio e ospitata all'URL //computer-database.gatling.io.

Il nostro semplice scenario potrebbe essere:

  • Un utente arriva all'applicazione.
  • L'utente cerca "amstrad".
  • L'utente apre uno dei modelli correlati.
  • L'utente torna alla home page.
  • L'utente scorre le pagine.

4. Configurazione del registratore

Prima di tutto avvia la classe Recorder dall'IDE. Una volta avviata, la GUI consente di configurare come verranno registrate le richieste e le risposte. Scegli le seguenti opzioni:

  • 8000 come porta di ascolto
  • pacchetto org.baeldung.simulation
  • Nome della classe RecordedSimulation
  • Segui i reindirizzamenti? controllato
  • Referer automatici? controllato
  • Prima strategia di filtro selezionata nella lista nera
  • . * \. css , . * \. js e . * \. ico nei filtri black list

Ora dobbiamo configurare il nostro browser per utilizzare la porta definita ( 8000 ) scelta durante la configurazione. Questa è la porta a cui deve connettersi il nostro browser in modo che il registratore possa acquisire la nostra navigazione.

Ecco come fare con Firefox, apri le Impostazioni avanzate del browser, quindi vai nel pannello Rete e aggiorna le impostazioni di connessione:

5. Registrazione dello scenario

Ora che tutto è configurato possiamo registrare lo scenario che abbiamo definito sopra. I passaggi sono i seguenti:

  1. Avvia la registrazione facendo clic sul pulsante "Avvia"
  2. Vai al sito web: //computer-database.gatling.io
  3. Cerca modelli con "amstrad" nel nome
  4. Seleziona "Amstrad CPC 6128"
  5. Torna alla home page
  6. Scorre più volte le pagine del modello facendo clic sul pulsante Avanti
  7. Fare clic sul pulsante "Interrompi e salva"

La Simulazione verrà generata nel pacchetto org.baeldung definito durante la configurazione con il nome RecordedSimulation.scala

6. Eseguire una simulazione con Maven

Per eseguire la nostra simulazione registrata dobbiamo aggiornare il nostro pom.xml :

 io.gatling gatling-maven-plugin 2.2.4   test execute  true    

Questo ci permette di eseguire la simulazione in fase di test. Per iniziare il test basta eseguire:

mvn test

Al termine della simulazione, la console visualizzerà il percorso dei report HTML.

Nota: viene utilizzata la configurazione true perché useremo Scala con Maven questo flag assicurerà che non finiremo per compilare la nostra simulazione due volte. Maggiori dettagli sono disponibili sui documenti Gatling.

7. Revisione del risultato

Se apriamo index.html nella posizione suggerita, i rapporti avranno il seguente aspetto:

8. Conclusione

In questo tutorial abbiamo esplorato il test di carico di un server HTTP con Gatling. Gli strumenti ci consentono di registrare una simulazione basata su uno scenario definito con l'aiuto di un'interfaccia GUI. Al termine della registrazione, possiamo avviare il nostro test. Il rapporto di prova sarà in una forma di curriculum HTML.

Per costruire il nostro esempio abbiamo scelto di utilizzare un archetipo Maven. Questo ci aiuta a integrare Gatling ed eseguirlo in un IDE e semplifica la manutenzione del progetto in un sistema di controllo della versione.

Il codice di esempio può essere trovato nel progetto GitHub.