jmeter processors controllers
Panoramica di pre-processori e controller in JMeter (parte III):
=> Segui una serie completa di tutorial gratuiti su JMeter qui
Questo articolo guiderà gli utenti attraverso l'utilizzo di pre-processori, post-processori e controller in JMeter. I controller sono molto utili in quanto creano gli scenari di test.
Si consiglia di testare diversi scenari in cui si desidera configurare la propria sequenza di una richiesta inviata a un server per monitorare il tempo di risposta e altri fattori di prestazioni.
Cosa imparerai:
- Pre-processori
- Parametri utente
- Timeout del campione
- Controller
- Esempio in tempo reale
- Modello di registrazione di JMeter
- Conclusione
- Lettura consigliata
Pre-processori
Questi sono gli elementi che vengono eseguiti prima che venga eseguito un campionatore. È possibile allegare Pre-Processor con il campionatore per il quale si desidera apportare alcune modifiche nella richiesta.
Il caso più semplice potrebbe essere l'aggiunta del preprocessore 'Sample Timeout' con una richiesta HTTP in modo che questa richiesta venga eseguita solo per un periodo di tempo definito. Si assicura inoltre che questa modifica venga eseguita solo per il campionatore principale.
Di seguito sono riportati alcuni dei pre-processori utilizzati in JMeter:
- Pre-processore Bean Shell
- Parser link HTML
- Riscrittura URL HTTP
- Preprocessore JDBC
- Timeout del campione
- Parametri utente
Quelli più comunemente usati sono spiegati di seguito con esempi. Potresti aver bisogno o meno di tutto nei tuoi progetti. Cerca di identificare gli scenari relativi al tuo progetto e implementa quelli che ti aiutano a coprire gli scenari di prestazioni in tempo reale.
Parametri utente
I parametri utente vengono utilizzati per definire i valori per le variabili prima che vengano utilizzati nei campionatori. Quando JMeter esegue questo elemento Pre-Processor, memorizza i valori nelle variabili che possono essere referenziate da qualsiasi Samplers all'interno dello stesso gruppo di thread.
c'è un'app per programmare i post di Instagram
Se si dispone di più thread rispetto al numero di utenti in 'Parametri utente' rispetto ai thread aggiuntivi, verrà ripetuto nuovamente i valori.
Per esempio, hai 5 utenti nel tuo gruppo di thread ma solo 3 nel pre-processore, quindi il tuo 4the un 5ththread utilizzerà param1 e param2 .
Timeout del campione
Questo preprocessore viene utilizzato per definire la durata del timeout per le richieste.
Per esempio, se hai impostato un tempo di campionamento di 400 millisecondi, tutte le richieste che impiegano un tempo> 400 avranno una risposta non riuscita.Vedere gli screenshot seguenti.
Controller
I controller sono molto importanti nella creazione di un piano di test JMeter in tempo reale. Definisce la sequenza in cui le richieste vengono inviate al server.
Per esempio, Se si desidera testare un'applicazione Web in cui si desidera eseguire l'accesso una volta e cercare, la selezione degli elementi richiede di andare uno per uno per tutte le iterazioni. I controllori lo rendono possibile gestendo il flusso di richieste in corso sul server in prova.
Di seguito sono riportati i controller più comunemente utilizzati in JMeter
- Controller semplice
- Controller del modulo
- Once Only Controller
- Controller interleave
- Controller di loop
- Se Controller
- Per ogni controller
- Controller di registrazione e così via,
Controller semplice
Il controller semplice non svolge alcuna funzione specifica. È solo una sorta di contenitore in cui puoi conservare le tue richieste simili per rendere facilmente comprensibile il tuo piano di test.
Controller di loop
Se desideri che una richiesta specifica esegua più iterazioni di quanto specificato in Thread Group, puoi metterle in Loop Controller e inserire il conteggio dei loop nelle impostazioni del controller.
Esempio: Se hai un gruppo di thread con 1 utente e 3 iterazioni, tutte le tue richieste in questo gruppo verranno eseguite per 3 volte. Ora, se hai due campionatori HTTP sotto un controller di loop con conteggio loop 2, entrambi questi campionatori verranno eseguiti 1 * 3 * 2 = 6 volte.
Si prega di vedere gli screenshot di seguito che lo spiegano ulteriormente
Once Only Controller
Questo controller viene utilizzato quando si desidera eseguire una richiesta specifica solo una volta anche se sono presenti più thread nel gruppo di thread. L'esempio più semplice che può essere considerato è 'Recupero della home page di un sito Web' o 'Accesso a un'applicazione Web'. Lo scenario in tempo reale vorrebbe che accadesse una sola volta e che altre richieste come la ricerca o la modifica / eliminazione di qualcosa accadessero più volte.
La richiesta che deve essere eseguita una sola volta può essere inserita in Once Only Controller. Fare riferimento alla schermata sottostante per riferimento. Una volta che solo le impostazioni del controller ignorano le impostazioni del gruppo thread principale.
Controller di registrazione
Proprio come Simple Controller, Recording Controller non modifica alcuna sequenza delle richieste che vengono inviate al server. Viene utilizzato con HTTP (S) Script Recorder. Tutte le richieste registrate con questo elemento non di prova vengono salvate nel controller di registrazione.
È necessario specificare il controller di destinazione per salvare le richieste registrate fatte al server.
Il controller di registrazione e il registratore di script HTTP entrano in scena quando i tester non hanno le informazioni sugli URL e i parametri delle richieste. Possono semplicemente registrare e acquisire tutte le richieste che colpiscono i loro server. Funziona sia per i progetti mobili che web.
Throughput Controller
Questo controller viene utilizzato anche per controllare il flusso di esecuzione. Come si vede nel ritaglio sotto, questo controller è ulteriormente diviso in due parti:
Esecuzione percentuale - Questa selezione farà eseguire a Jmeter solo una certa percentuale delle iterazioni totali per i campionatori posti sotto questo controller. È inoltre possibile selezionare la casella di controllo 'Per utente' per controllarlo a livello di utente.
Per esempio, Il gruppo di thread è configurato per avere 10 utenti e il conteggio dei loop è 5. Pertanto, le iterazioni totali sono 50. Se la% di esecuzione è impostata al 50%, tutti i campionatori sotto il Throughput Controller effettueranno solo 25 iterazioni (50% di 50).
Esecuzioni totali - Ciò consente agli utenti di specificare il numero di iterazioni direttamente per i campionatori contenuti in questo controller.
Controller interleave
Questo controller consente di aumentare l'ambito del test delle prestazioni modificando la sequenza in n diversi modi in modo da poter testare il carico sul server quando le applicazioni soddisfano la richiesta con sequenze diverse. Il controller Interleave effettua selezioni alternative con i campionatori sotto di esso.
Nel caso in cui ci siano altri controller come Simple Controller tenuti sotto questo blocco, il controller interleave dà il privilegio di selezionare un campionatore ciascuno da un contenitore per ogni iterazione. Per spiegarlo ulteriormente, considera il seguente piano di test.
Quindi, Jmeter itererà alternativamente tra i controller per ogni iterazione. Pertanto, la sequenza verrà menzionata di seguito
Richiesta1 -> Richiesta3 -> Richiesta 5 - Richiesta2 -> Richiesta4 -> Richiesta6
Si prega di vedere i risultati di JMeter di seguito con numero di thread = 2 e conteggio loop = 2.
miglior software di backup gratuito per Windows 7
Nell'esempio sopra, Jmeter è Interleaving with next loop / iteration. Ci sono impostazioni in Interleave Controller che possono fare in modo che JMeter invii richieste alternative con ogni nuovo thread.
Si prega di vedere i risultati di seguito. Ciò è utile negli scenari in cui si desidera che i server colpiscano il carico sequenziale o simultaneo con la diversa sequenza della richiesta dalla stessa macchina.
Controller casuale
Funziona quasi come il controller Interleave ma non seleziona i campionatori in ordine. Seleziona semplicemente i subcontrollori e i campionatori al loro interno in modo casuale.
Se Controller
Se Controller funziona in modo simile, un'espressione IF viene trattata in qualsiasi linguaggio di programmazione. La condizione viene prima convalidata e quindi i componenti in questo contenitore vengono eseguiti se la condizione è TRUE, altrimenti verranno eseguiti gli elementi all'esterno del controller IF.
Esempio : Continuando con uno degli esempi precedenti che coinvolgevano il controller Interleave, ora uno dei due controller Interleave è stato mantenuto sotto il controller IF e la condizione '$ (COUNT)<10 is added as a condition. Variable COUNT is defined in config element “User Defined Variables” and is given a value equal to 11. Configuration is described below
Definizione e assegnazione di un valore a COUNT variabile.
Definizione della condizione in Se Controller impostazioni. Jmeter convaliderà questa condizione e, se TRUE, eseguirà i blocchi in questo contenitore.
Come puoi vedere dal piano di test sottostante, solo Request3, Request4 e Request5 verranno eseguiti nel caso in cui la condizione IF venga valutata come Falso .
Mentre i controller
Questo controller esegue i componenti sottostanti finché la condizione non diventa falsa.
Per esempio, diciamo che abbiamo una condizione while ($ (count)<10), it will execute the child elements until the condition is false. To test this, there should be a counter which gets increment or decrement on each iteration and then condition is evaluated. Config Element “Counter” can be used to serve this purpose.
Configurare l'elemento di configurazione 'Counter' in modo che inizi da 1 e quindi aumenti a ogni iterazione. Vedi sotto per maggiori chiarimenti:
Toccheremo il resto dei controller nei nostri tutorial video.
Esempio in tempo reale
Consideriamo uno scenario in cui il team di test non conosce gli URL e i parametri di tutte le richieste che colpiscono il server sottoposto a test. Ora, per testare il carico del server, devono registrare le richieste e quindi modulare il carico in modo sequenziale o simultaneo e creare scenari al di fuori di essi per eseguire il test delle prestazioni.
Passi
ba domande da porre durante l'intervista
- Aggiungi un modello in Jmeter per il controller di registrazione
- Imposta il proxy sul tuo browser e scegli la stessa porta in HTTP (s) Script Recorder
- Registra le richieste
- Modificare il piano di test e aumentare il carico
- Raggruppa le transazioni di conseguenza
- Prova diverse combinazioni di richiesta
Modello di registrazione di JMeter
JMeter ha anche alcuni modelli predefiniti. Seleziona l'opzione 'Modello' dal menu File. Dopo aver selezionato il modello scegliere l'opzione 'Registrazione' nella finestra che si apre e fare clic su Crea.
Non appena selezioni questo modello di registrazione, vedrai alcuni componenti già aggiunti nel piano di test.
- Registratore di script HTTP (s) in Work Bench
- Default richiesta HTTP e HTTP Cookie Manager
- Controller di registrazione nel gruppo di thread.
Puoi eseguire le impostazioni proxy sul tuo browser per parlare con il server proxy JMeter o utilizzare CHROME Extension Blazemeter per registrare le richieste e quindi esportare il file. jmx in Jmeter. Esistono molte altre estensioni per registrare lo script e quindi esportarlo in JMeter. Lo strumento BADBOY funziona bene anche con Jmeter per la registrazione di hit sia web che mobile.
Clicca su. opzione jmx per esportare la richiesta registrata su Jmeter. Ora da Jmeter, apri il file. jmx e visualizzare le richieste ei parametri associati a ciascuna richiesta.
Conclusione
A questo punto, si presume che tutti voi abbiate acquisito familiarità con la logica di base di JMeter, come simula il carico, come giocare con diversi tipi di campionatori, come controllare il flusso di esecuzione con l'uso del controller e utilizzando le variabili e funzioni per eseguire i cicli attraverso le iterazioni. Questa non è certamente la fine della serie di tutorial su JMeter.
Ci sono molti video tutorial a seguire che guiderà i tester con più mani su diversi scenari in Jmeter e su come ogni componente di JMeter può essere utilizzato nel modo migliore.
=> Controlla l'elenco completo dei tutorial video di JMeter qui
Per favore condividi i tuoi commenti o domande con noi.
Lettura consigliata
- Controller Jmeter Parte 1
- Controller Jmeter Parte 2
- Come ottenere la correlazione JMeter con l'esempio
- Lavorare con le richieste HTTP in JMeter
- Lavorare con la richiesta FTP in JMeter
- Utilizzo del post processore in JMeter (Regular Expression Extractor)
- I 5 migliori plugin JMeter e come usarli (con esempi)
- Timer JMeter: timer casuale costante, BeanShell e Guassian