Cosa sono i timer?
Per impostazione predefinita, JMeter invia la richiesta senza interruzioni tra ciascuna richiesta. In tal caso, JMeter potrebbe sovraccaricare il tuo server di prova effettuando troppe richieste in un breve lasso di tempo.
Immagina di inviare migliaia di richieste a un server web in prova in pochi secondi. È questo che succede!
I timer consentono a JMeter di ritardare tra ogni richiesta effettuata da un thread. Un timer può risolvere il problema del sovraccarico del server .
Inoltre, nella vita reale i visitatori non arrivano a un sito web tutti nello stesso momento, ma a intervalli di tempo diversi. Quindi Timer aiuterà a imitare il comportamento in tempo reale.
In questo tutorial imparerai
- Timer costante
- Timer casuale gaussiano
- Timer casuale uniforme
- Timer BeanShell
- Timer BSF
- Timer JSR223
- Come utilizzare Constant Timer
Di seguito sono riportati alcuni tipi comuni di timer in JMeter
Timer costante:
Il timer costante ritarda ogni richiesta dell'utente per la stessa quantità di tempo.
Timer casuale gaussiano:
Il timer casuale gaussiano ritarda ogni richiesta dell'utente per un periodo di tempo casuale .
Parametri:
Attributo | Descrizione |
---|---|
Nome | Nome descrittivo per questo timer mostrato nella struttura ad albero |
Deviazioni (millisecondi) | Un parametro della funzione di distribuzione gaussiana |
Constant Delay Offset (millisecondi) | Valore aggiuntivo in millisecondi |
Quindi il ritardo totale è descritto come nella figura seguente:
Timer casuale uniforme:
Un timer casuale uniforme ritarda ogni richiesta dell'utente per un periodo di tempo casuale.
Parametri:
Attributo |
Descrizione |
---|---|
Nome |
Nome descrittivo per questo timer mostrato nella struttura ad albero |
Ritardo casuale massimo |
Numero casuale massimo di millisecondi da ritardare. |
Constant Delay Offset (millisecondi) |
Valore aggiuntivo in millisecondi |
Il ritardo totale è la somma del valore casuale e del valore di offset.
Timer BeanShell
Il timer BeanShell può essere utilizzato per generare un tempo di ritardo tra ogni richiesta dell'utente.
Timer BSF
Il timer BSF può essere utilizzato per generare un ritardo tra ogni richiesta dell'utente utilizzando un linguaggio di scripting BSF.
Timer JSR223
Il timer JSR223 può essere utilizzato per generare un ritardo tra ogni richiesta dell'utente utilizzando un linguaggio di scripting JSR223
Come utilizzare Constant Timer
In questo esempio, utilizzerai Constant Timer per impostare un ritardo fisso tra le richieste degli utenti a google.com.
Cominciamo con un semplice script di test
- JMeter crea 100 volte una richiesta utente a http://www.google.com
- Il ritardo tra ciascuna richiesta dell'utente è di 5000 ms
Ecco la tabella di marcia per questo esempio pratico:
Presupposto:
Abbiamo ri-utilizziamo la Fase 1 e Fase 2 in esercitazione JMeter Performance Testing.
Passaggio 1) Aggiungi gruppo di thread
Fare clic con il pulsante destro del mouse sul piano di test e aggiungere un nuovo gruppo di thread: Aggiungi -> Thread (utenti) -> Gruppo di thread
Nel pannello di controllo del gruppo di thread, immettere Proprietà thread come segue
Questa impostazione consente a JMeter di creare una richiesta utente a http://www.google.com in 100 volte
Passaggio 2) Aggiungi elementi JMeter
- Aggiungi la richiesta HTTP predefinita
- Aggiungi richiesta HTTP
Passaggio 3) Aggiungi un timer costante
Fare clic con il pulsante destro del mouse su Gruppo thread -> Timer -> Timer costante
Configurazione del ritardo del thread di 5000 millisecondi
Passaggio 4) Aggiungi i risultati della visualizzazione nella tabella
Visualizza risultati in tabella visualizza il risultato del test in formato tabella.
Fare clic con il pulsante destro del mouse su Aggiungi -> Listener -> Visualizza risultato nella tabella
Visualizza i risultati nella tabella come mostrato nella figura sottostante
Passaggio 5) Esegui il test
Quando sei pronto per eseguire un test, fai clic sul pulsante Esegui sulla barra dei menu o sul tasto breve Ctrl + R
Questo è il risultato di questo test
Ad esempio, nella figura sopra, analizziamo il campione 2
- L'ora di inizio è 22: 05: 01.866
- Il tempo di campionamento del campione 2 è 172 ms
- Timer costante : 5000 ms (come configurato)
- L'ora di fine di questo campione è = 22: 05: 01.866 + 172 + 5000 = 22: 05: 07.038
Quindi il campione 3 dovrebbe iniziare all'ora 22: 05: 07.039 (come mostrato nella figura sopra)
Il ritardo di ogni campione è di 5000 ms
Se modifichi che il timer costante è zero , vedrai che il risultato è cambiato
Analizziamo il campione 1
- L'ora di inizio è 22: 17: 39.141
- Il tempo di campionamento del campione 2 è di 370 ms
- Timer costante : 0 ms (come configurato)
- L'ora di fine di questo campione è = 22: 17: 39.141 + 370 + 0 = 22: 17: 39.511
Quindi il campione 2 dovrebbe iniziare nel momento in cui è 22: 17: 39.512 (mostrato nella figura sopra)
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 TimerTestPlan.jmx in Jmeter
- Fare doppio clic su Gruppo thread -> Visualizza risultato nella tabella
- Esegui il test