Introduzione al test delle prestazioni utilizzando JMeter

1. Panoramica

In questo articolo, utilizzeremo Apache JMeter per configurare ed eseguire test delle prestazioni.

2. Configurazione di JMeter

Scarichiamo JMeter, decomprimilo, vai nella cartella bin ed esegui l'eseguibile (* .bat per Windows e * .sh per Linux / Unix).

Successivamente, dobbiamo solo aggiungere questa cartella alla variabile di ambiente del percorso in modo che sia accessibile dalla riga di comando.

La versione più stabile al momento della scrittura è la 3.3 - possiamo controllare la versione più recente qui.

3. Creazione di script JMeter

Ora scriviamo il nostro primo script JMeter (un file contenente una descrizione tecnica dei nostri test).

Questa API è una semplice applicazione SpringBoot che espone un'API REST.

Aggiorniamo il piano di test e cambiamo prima il nome, quindi aggiungiamo un gruppo di thread .

Un gruppo di thread ci consente di conoscere il flusso degli utenti e simula il modo in cui interagiscono con l'app, fare clic con il pulsante destro del mouse sul nome del nostro script nella GUI e seguire il menu selezionato:

Ora ci dirigiamo alla parte di configurazione del Thread Group , dove specifichiamo il numero di utenti che fanno richieste alla nostra applicazione in parallelo:

Qui, abbiamo specificato parametri come:

- Nome: il nome che vogliamo dare al gruppo di thread

- Il numero di thread (utenti) : il numero di utenti paralleli

- Ramp-up time : tempo necessario per passare da 0 al numero di utenti dichiarato

- Conteggio loop : numero di ripetizioni

Aggiungi una richiesta HTTP poiché è quella che simuleremo come proveniente da ciascuno dei 5 utenti.

Riempiamo le informazioni per indirizzare la nostra API descritta lì sopra come nell'immagine qui sotto:

Dobbiamo solo inserire l'indirizzo del sito Web, la porta e il percorso specifico.

Successivamente, simuliamo le richieste degli utenti dopo aver aggiunto un albero di visualizzazione dei risultati (utilizzare Visualizza risultati nella tabella se i risultati sono un elenco di record) seguendo il menu " Aggiungi> Listener" .

Premi il pulsante freccia verde a destra in alto per eseguire il test e vedere i dati di risposta:

Possiamo vedere una rappresentazione più dettagliata della risposta nella scheda dei risultati del campionatore .

Terminiamo aggiungendo un'asserzione di durata nella richiesta HTTP , così ogni richiesta che dura più di dieci millisecondi sarà considerata come un test fallito:

Dopo aver rieseguito il test, vediamo che ci sono alcuni (qui sono 3) utenti che non possono ottenere gli elenchi di studenti in meno di dieci millisecondi:

Ora salviamo il test con l'estensione .jmx nella cartella delle risorse dell'API.

Sono disponibili più elementi per configurare il nostro file di test:

  • Richiesta JDBC: utile per inviare una richiesta JDBC (query SQL) a un database, prima di utilizzarla è necessario impostare un elemento di configurazione della connessione JDBC
  • Asserzione XML: verifica che i dati di risposta siano di un documento XML correttamente corretto
  • Asserzione dimensione: afferma che la risposta contiene il giusto numero di byte in essa
  • Publisher JMS: per pubblicare messaggi su una determinata destinazione (argomento / coda) seguendo la specifica J2EE per la messaggistica

Tutti i componenti disponibili sono descritti in dettaglio nel manuale utente.

4. Eseguire i test JMeter

Esistono due modi per eseguire i test JMeter, uno consiste nell'utilizzare il plug-in Maven disponibile e l'altro nell'app JMeter autonoma in modalità non GUI.

In ogni caso, entrambi devono sapere dove raggiungere lo script JMeter che abbiamo configurato in precedenza.

4.1. Plugin JMeter Maven

JMeter Maven Plugin è un plugin Maven che offre la possibilità di eseguire i test JMeter come parte della nostra build; la sua ultima versione in questo momento è 2.6.0 che è compatibile con Apache JMeter 3.3.

Aggiungiamolo al pom.xml del nostro progetto:

 com.lazerycode.jmeter jmeter-maven-plugin 2.6.0   jmeter-tests  jmeter     ${project.basedir}/src/main/resources ${project.basedir}/src/main/resources  

Dopodiché, possiamo eseguire tutti i nostri test con mvn verify o solo quelli JMeter con mvn jmeter: jmeter ; ecco l'output della console del comando:

Nota: qui abbiamo specificato la directory in cui si trovano i nostri test nel progetto, verrà scelta quella predefinita ( $ {project.basedir} / src / test / jmeter ); allo stesso modo è configurata la directory dei risultati, altrimenti quella predefinita sarà $ {project.basedir} / target / jmeter / results .

La documentazione completa del plugin è accessibile qui.

4.2. Modalità non GUI

L'altro modo per farlo è tramite l'eseguibile JMeter, supponendo che sia disponibile tramite la riga di comando possiamo farlo:

jmeter -Jjmeter.save.saveservice.output_format = xml

-n -t src / main / resources / JMeter.jmx -l src / main / resources / JMeter.jtl

Impostiamo XML come formato di output, che riempie il file di test esatto e quello dei risultati.

Nota: si consiglia di non utilizzare la modalità GUI per i test di carico, solo per la creazione e il debug dei test.

5. conclusione

In questo breve tutorial, abbiamo configurato Apache JMeter su un'app SpringBoot per eseguire test delle prestazioni con un plug-in Maven mentre cercavamo praticamente come progettare un test delle prestazioni di base.

Come sempre, il codice sorgente di questo articolo può essere trovato su GitHub.