Test di carico JMeter
JMeter Load Testing è un processo di test eseguito utilizzando uno strumento di test di carico denominato Apache JMeter, un'applicazione desktop open source basata su Java. JMeter per il test di carico è uno strumento cruciale che determina se l'applicazione web sotto test può soddisfare o meno requisiti di carico elevato. Aiuta anche ad analizzare il server generale sotto carico pesante.
Test delle prestazioni di JMeter
JMeter Performance Testing è un metodo di test eseguito utilizzando Apache JMeter per testare le prestazioni di un'applicazione web. JMeter per il test delle prestazioni aiuta a testare le risorse statiche e dinamiche, aiuta a scoprire utenti simultanei sul sito Web e fornisce una varietà di analisi grafiche per i test delle prestazioni. Il test delle prestazioni di JMeter include il test di carico e lo stress test dell'applicazione web.
Lo strumento di test Apache JMeter offre i seguenti vantaggi nel test delle prestazioni
- JMeter può essere utilizzato per testare le prestazioni sia di risorse statiche come JavaScript e HTML, sia di risorse dinamiche , come JSP, Servlet e AJAX.
- JMeter può scoprire il numero massimo di utenti simultanei che il tuo sito web può gestire
- JMeter fornisce una varietà di analisi grafiche dei rapporti sulle prestazioni.
JMeter Performance Testing include:
- Test di carico : modellazione dell'utilizzo previsto simulando l'accesso simultaneo di più utenti ai servizi Web.
- Stress Test: ogni server web ha una capacità di carico massima. Quando il carico supera il limite, il server web inizia a rispondere lentamente e produce errori. Lo scopo dello stress test è trovare il carico massimo che il server web può sopportare.
La figura seguente mostra come JMeter Load Testing simula il carico pesante:
Crea un piano di test delle prestazioni in JMeter
In questo tutorial, stiamo effettuando un'analisi delle prestazioni di Google.com per 1000 utenti
Prima di testare le prestazioni dell'applicazione web di destinazione, dovremmo determinare-
- Carico normale : numero medio di utenti che visitano il tuo sito web
- Carico pesante : il numero massimo di utenti che visitano il tuo sito web
- Qual è il tuo obiettivo in questo test?
Ecco la tabella di marcia di questo esempio pratico
Passaggio 1) Aggiungi gruppo di thread
- Avvia JMeter
- Seleziona Piano di test sulla struttura ad albero
- Aggiungi gruppo thread
Fare clic con il tasto destro su "Test Plan" e aggiungere un nuovo gruppo thread: Aggiungi -> Thread (utenti) -> Gruppo thread
Nel pannello di controllo del gruppo di thread, immettere le proprietà del thread come segue:
- Numero di thread : 100 (il numero di utenti si connette al sito Web di destinazione: 100)
- Conteggio loop : 10 (numero di volte per eseguire il test)
- Periodo di accelerazione : 100
Il numero di thread e il numero di loop sono diversi.
Ramp-Up Period dice a JMeter quanto tempo ritardare prima di avviare l'utente successivo. Ad esempio, se abbiamo 100 utenti e un periodo di accelerazione di 100 secondi, il ritardo tra l'avvio degli utenti sarà di 1 secondo (100 secondi / 100 utenti)
Passaggio 2) Aggiunta di elementi JMeter
Ora determiniamo quali elementi JMeter in questo test. Gli elementi sono
-
Richiesta HTTP predefinita
Questo elemento può essere aggiunto facendo clic con il pulsante destro del mouse sul gruppo di thread e selezionando: Aggiungi -> Elemento di configurazione -> Impostazioni predefinite della richiesta HTTP.
Nel pannello di controllo Impostazioni predefinite richieste HTTP, inserisci il nome del sito web sottoposto a test (http://www.google.com)
-
Richiesta HTTP
Fare clic con il pulsante destro del mouse su Gruppo thread e selezionare: Aggiungi -> Campionatore -> Richiesta HTTP .
Nel pannello di controllo delle richieste HTTP, il campo Percorso indica quale richiesta URL desideri inviare al server di Google.
Ad esempio, se inserisci "calendario" nel campo Percorso. JMeter creerà la richiesta URL http://www.google.com/calendar al server di Google
Se mantieni vuoto il campo Path, JMeter creerà la richiesta dell'URL http://www.google.com al server di Google.
In questo test, mantieni vuoto il campo Path per fare in modo che JMeter crei la richiesta URL http://www.google.com al server di Google.
Passaggio 3) Aggiunta del risultato del grafico
JMeter può mostrare il risultato del test in formato grafico.
Fare clic con il pulsante destro del mouse su Piano di prova, Aggiungi -> Ascoltatore -> Risultati grafico
Passaggio 4) Esegui il test e ottieni il risultato del test
Premere il pulsante Esegui (Ctrl + R) sulla barra degli strumenti per avviare il processo di test del software. Vedrai la visualizzazione dei risultati del test sul grafico in tempo reale.
L'immagine sotto presenta un grafico di un piano di test, dove abbiamo simulato 100 utenti che hanno effettuato l'accesso sul sito www.google.com.
Nella parte inferiore dell'immagine, ci sono le seguenti statistiche, rappresentate a colori:
- Nero: il numero totale di campioni correnti inviati.
- Blu: la media corrente di tutti i campioni inviati.
- Rosso: l'attuale deviazione standard.
- Verde: velocità di trasmissione che rappresenta il numero di richieste al minuto gestite dal server
Analizziamo le prestazioni del server di Google nella figura sottostante.
Per analizzare le prestazioni del server web sotto test, dovresti concentrarti su 2 parametri
- Portata
- Deviazione
Il rendimento è il parametro più importante. Rappresenta la capacità del server di gestire un carico pesante. Il più alto il volume è, il meglio è il prestazioni del server.
In questo test, il throughput del server di Google è 1.491.193 / minuto. Significa che il server di Google può gestire 1.491.193 richieste al minuto. Questo valore è piuttosto alto, quindi possiamo concludere che il server di Google ha buone prestazioni
La deviazione è mostrata in rosso - indica la deviazione dalla media. Il più piccolo il meglio .
Confrontiamo le prestazioni del server di Google con quelle di altri server web. Questo è il risultato del test delle prestazioni del sito Web http://www.yahoo.com/ (è possibile scegliere altri siti Web)
Il throughput di un sito web in prova http://www.yahoo.com è 867.326 / minuti. Significa che questo server gestisce 867.326 richieste al minuto, meno di Google.
La deviazione è 2689, molto più alta di Google (577). Quindi possiamo determinare che le prestazioni di questo sito web sono inferiori a quelle di un server di Google.
NOTA: I valori di cui sopra dipendono da diversi fattori come il carico del server corrente su Google, la velocità di Internet, la potenza della CPU, ecc. Quindi, è molto improbabile che si ottengano gli stessi risultati di cui sopra. Quindi niente panico!
Risoluzione dei problemi:
Se si verifica il problema durante l'esecuzione dello scenario precedente ... eseguire le seguenti operazioni
- Controlla se ti stai connettendo a Internet tramite un proxy. In caso affermativo, rimuovere il proxy.
- Apri una nuova istanza di Jmeter
- Apri PerformanceTestPlan.jmx in Jmeter
- Fare doppio clic su Gruppo thread -> Risultato grafico
- Esegui il test