Cos'è il Logic Controller?
I controller logici consentono di definire l'ordine di elaborazione della richiesta in un thread. Ti consente di controllare "quando" inviare una richiesta utente a un server web. Ad esempio, è possibile utilizzare controller casuali per inviare richieste HTTP al server in modo casuale
I controller logici determinano l'ordine in cui viene eseguita la richiesta dell'utente.
Di seguito sono riportati alcuni controller logici di uso comune:
Controller di registrazione:
JMeter può registrare i tuoi passi di prova; un controller di registrazione è un segnaposto per memorizzare questi passaggi di registrazione.
Controller semplice:
Simple Controller è solo un contenitore per la richiesta dell'utente.
Controller di loop:
Loop Controller esegue la richiesta dell'utente per un numero di volte specificato o per sempre come mostrato in figura:
Controller casuale:
Random Controller fa in modo che tutte le richieste dell'utente vengano eseguite in ordine casuale in ogni periodo di loop.
Ad esempio, hai 3 richieste utente al sito web http://www.google.com nel seguente ordine:
- Richiesta HTTP
- Richiesta FTP
- Richiesta JDBC
Queste 3 richieste dovrebbero essere eseguite 5 volte. Le richieste degli utenti in totale 15 verranno inviate al server di Google da JMeter.
In ordine sequenziale , le richieste vengono inviate in sequenza nel seguente ordine:
Richiesta HTTP -> richiesta FTP-> richiesta JDBC
per ogni ciclo.
In ordine casuale , le richieste vengono inviate in modo casuale,
Richiesta FTP -> richiesta HTTP-> richiesta JDBC
O
Richiesta JDBC -> Richiesta FTP-> Richiesta HTTP
Per ogni ciclo.
Controller del modulo:
L'obiettivo di Module Controller è aggiungere modularità a JMeter.
L'idea generale è che le applicazioni web siano costituite da piccole unità di funzionalità (es. Accesso, creazione account, disconnessione ...). Questa funzionalità può essere memorizzata in Simple Controller come "moduli". Il controller del modulo sceglierà quale modulo deve essere eseguito.
Considera il seguente scenario:
Vuoi simulare:
- 50 utenti che si disconnettono ,
- 100 utenti che accedono
- 30 utenti effettuano ricerche su www.google.com
Puoi usare JMeter per creare 3 moduli. Ogni modulo simula ogni attività dell'utente: accesso, disconnessione e ricerca.
Il controller del modulo sceglie quale modulo deve essere eseguito.
Altri controller importanti:
- Controller Interleave : raccoglie e fa eseguire una delle richieste dell'utente in ogni ciclo del thread.
- Runtime Controller: controlla per quanto tempo i suoi figli possono essere eseguiti.
Ad esempio, se hai specificato Runtime Controller 10 secondi, JMeter eseguirà il test per 10 secondi.
- Transaction Controller: misura il tempo complessivo impiegato per completare l' esecuzione di un test
- Include Controller: è progettato per utilizzare un piano di test esterno. Questo controller consente di utilizzare più piani di test in JMeter. Vedi i dettagli in JMeter Performance Testing.
Esempio di controller di loop
Questa sezione mostra le istruzioni dettagliate per aggiungere il set di controller di loop al piano di test delle prestazioni corrente.
Il controller di loop esegue i campionatori un certo numero di volte, oltre al valore di loop specificato per il gruppo di thread. Ad esempio, se tu
- Aggiungi una richiesta HTTP a un controller di loop con un conteggio di loop 50
- Configurare il conteggio del ciclo del gruppo di thread su 2
- Quindi, JMeter invierà un totale di 50 * 2 = 100 richieste HTTP.
Questa è la tabella di marcia di questo esempio:
Passaggio 1) Configurazione del gruppo di thread
Abbiamo ri-utilizzare la Fase 1, 2 in esercitazione JMeter Performance Testing.
-
Aggiungi gruppo 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
Ma nel pannello di controllo del gruppo di thread, inserisci le proprietà del thread come segue:
Farà una richiesta utente al server web google.com e la eseguirà 2 volte.
-
Aggiungi elementi JMeter
Aggiungi la richiesta HTTP predefinita a www.google.com.
-
Aggiunta del controller di loop
Fare clic con il pulsante destro del mouse su Thread Group -> Logic Controller -> Loop Controller
Passaggio 2) Configurazione del controller di loop
Aggiungere il valore 50 al campo Loop Count come nella figura sottostante. Farà una richiesta utente al server web google.com eseguirlo 50 volte, oltre al valore del ciclo = 2, specificato per il gruppo di thread sopra, quindi JMeter invierà un totale di 2 * 50 = 100 richieste HTTP.
Fare clic con il pulsante destro del mouse su Controller loop, Aggiungi -> Campionatore -> Richiesta HTTP
Passaggio 3) Aggiungi i risultati della visualizzazione nella tabella
Riutilizziamo il passaggio 2 in Timer per aggiungere Visualizza risultati in tabella
Quindi il piano di test è mostrato nella figura sottostante
Passaggio 4) Esegui il test
Ora torna Visualizza i risultati nella tabella, fai clic sul pulsante Start sulla barra dei menu (Ctrl + R) per eseguire un test
Come mostrato nella figura seguente, JMeter simula una richiesta utente, che viene inviata 100 volte, al server web http://www.google.com/. Il test viene interrotto dopo che una richiesta utente è stata inviata 100 volte.
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 ControllerTestPlan.jmx in Jmeter
- Fare clic su Gruppo thread -> Visualizza risultato nella tabella
- Esegui il test