Apache jMeter: guida agli stress test Una guida sull'utilizzo di Apache JMeter, il famoso tool per testare le applicazioni e sottoporle a carichi pesanti per misurare tutte le sue prestazioni.


(Ultimo aggiornamento: 28 Febbraio 2023)

Introduzione

Apache jMeter è un popolarissimo software utilizzato per testare le prestazioni di una qualsiasi applicazione. Può essere utilizzato per testare un’ampia varietà di applicazioni, incluse applicazioni Web, server LDAP, server FTP, ecc.

Dato che di recente ho dovuto usarlo per testare le prestazioni di un’applicazione web basata su Spring, ho pensato di scrivere una breve introduzione al suo utilizzo.

JMeter: la sezione Thread Groups

jmeter

La prima cosa che devi sapere per iniziare a utilizzare JMeter riguarda i cosiddetti Thread Groups.

I Thread Groups contengono una varietà di richieste che un utente tipico potrebbe fare (il tipico caso d’uso). Ad esempio, se devi testare una funzionalità denominata “Cambia password”, la sequenza di passaggi che un utente standard compie sono i seguenti:

  • Accedi al portale/applicazione.
  • Vai alla pagina “Cambia password”.
  • Inserisci la tua nuova password.
  • Fai Invia per confermare.

Tutti questi passaggi sono rappresentati all’interno di JMeter da un gruppo di thread. Se la tua applicazione è semplice, potresti non aver bisogno di più di un gruppo di thread. In effetti, se è più complicato, potresti volere diversi gruppi di thread per testare tutti i casi d’uso.

Panoramica

Dopo aver creato un nuovo Gruppo di Thread, dovrai creare alcune richieste HTTP per modellare la sequenza di pagine che il tuo utente andrà ad eseguire. Questo, ovviamente, dipenderà dai parametri esatti della pagina che hai impostato.

Probabilmente è meglio se eseguo un esempio: mostrerò come impostare un test di accesso.

Come si usa JMeter?

Supponiamo che tu abbia configurato un sistema di accesso, in modo da dover inserire un nome utente e una password per accedere su questo indirizzo: http://server/demo/Login.do.

Questo quindi imposta il cookie di sessione e invia un reindirizzamento a /demo/Home.do.

  • Avvia JMeter e crea un nuovo Thread Groups sotto la voce “Test Plane“.
  • Fai clic con il pulsante destro del mouse sul Thread Group che hai appena creato e seleziona: “Aggiungi -> Elemento di configurazione -> Gestore cookie HTTP”. Questo è molto importante se la tua applicazione dipende dalle sessioni J2EE (il che è probabile, se devi testare un accesso).
  • Aggiungi un altro elemento dallo stesso menu: “Default richiesta HTTP“. Ciò ti consente di impostare una serie di valori predefiniti che si applicano a ogni richiesta HTTP (a meno che tu non li sovrascriva), il che significa che non devi digitare il nome del server per ogni richiesta! In questo esempio, dovresti impostare il nome del server su “server” e lasciare il resto dei campi come valori predefiniti.
  • Aggiungi una richiesta HTTP (Aggiungi -> Campionatore -> Richiesta HTTP) al gruppo di thread
  • Cambia il metodo in POST e il percorso in “/demo/Login.do”
  • Aggiungi due parametri alla richiesta (sotto “Invia parametri con la richiesta”): nome utente e password. Nel nostro esempio non importa davvero come sono impostati il ​​nome utente e la password!
  • Ti consiglio di verificare che quando accedi, sei effettivamente indirizzato alla home page. Questo può essere fatto usando “Assertions”. Fare clic con il tasto destro sulla richiesta HTTP e selezionare “Add-> Assertions -> Response Assertions”. Quindi, nella schermata delle proprietà dell’asserzione, assicurati che “URL campionato” sia selezionato, quindi fai clic sul pulsante “aggiungi” in basso. Inserisci il pattern “Home.do” nella sezione “Pattern to test”.

Test  JMeter: conclusioni

Un importante svantaggio di JMeter è che non può registrare pagine che si basano sul protocollo (HTTPS), l’unico modo per aggirare questa limitazione è ad esempio utilizzare un altro strumento opensourcce chiamato Badboy.

Sebbene Badboy offra alcune funzionalità di test di carico elementari, per eseguire test di stress reali spesso è necessario molto di più. Piuttosto che cercare di offrire tutte le funzionalità di un prodotto completo per il test di carico, Badboy si integra con un prodotto open source gratuito chiamato JMeter.

JMeter è gestito dalla Apache Software Foundation ed è gratuito e open source. Badboy si integra con JMeter permettendoti di salvare i tuoi script nel formato di file JMeter in modo che tu possa aprirli ed eseguirli in JMeter.

Questo supporto significa che puoi utilizzare Badboy per registrare i tuoi script per eseguire test funzionali e quindi salvare lo stesso script come file JMeter per eseguire test delle prestazioni utilizzando tutta la potenza di JMeter! Esportare uno script in formato JMeter è molto semplice. Registra semplicemente il tuo script e vai su File-> Esporta in JMeter.


Lascia un commento