Controller dentro JMeter: Ciclo, Semplice, Transazione, Modulo, Casuale

Cos'è il controller logico?

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, puoi utilizzare i controller casuali per inviare richieste HTTP al server in modo casuale

I controllori logici determinano l'ordine in cui viene eseguita la richiesta dell'utente.

Di seguito sono riportati alcuni controller logici comunemente utilizzati:

Il controllore logico

Controllore di registrazione

JMeter può record il tuo Testing passaggi; un controller di registrazione è a segnaposto per memorizzare questi passaggi di registrazione.

Controllore di registrazione

Controllore semplice

Simple Controller è solo un file contenitore per richiesta dell'utente.

Controllore semplice

Controllore di loop

Il Loop Controller esegue la richiesta dell'utente un numero specificato di volte o corri per sempre come mostrato in figura:

Controllore di loop

Controllore casuale

Random Controller esegue tutte le richieste dell'utente il casuale ordine in ciascun periodo del ciclo.

Ad esempio, hai 3 richieste utente al sito web http://www.google.com nel seguente ordine:

  1. Richiesta HTTP
  2. Richiesta FTP
  3. Richiesta JDBC

Queste 3 richieste dovrebbero essere eseguite 5 volte. Un totale di 15 richieste utente verranno inviate al server di Google entro JMeter.

In sequenziale ordine, le richieste vengono inviate sequenzialmente nel seguente ordine:

Richiesta HTTP -> Richiesta FTP -> Richiesta JDBC

per ogni ciclo.

Controllore casuale

In con ordine, le richieste vengono inviate come a caso,

Richiesta FTP ->Richiesta HTTP->Richiesta JDBC

Or

Richiesta JDBC ->Richiesta FTP->Richiesta HTTP

Per ogni ciclo.

Controllore 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à (ad esempio Accesso, Crea account, Disconnessione…). Questa funzionalità può essere memorizzata in Controllore semplice come “moduli”. Il controller del modulo sceglierà quale modulo deve essere eseguito.

Controllore del modulo

Considera il seguente scenario:

Vuoi simulare:

  • 50 utenti disconnessione,
  • 100 utenti entrando
  • 30 utenti Ricerca www.google.com

Puoi usare JMeter per creare 3 moduli. Ogni modulo simula l'attività di ogni utente: accesso, disconnessione e ricerca.

Controllore del modulo

Il controller del modulo sceglie quale modulo deve essere eseguito.

Controllore del modulo

Altri controllori importanti

  • interfogliare Controller: prende e fa prima della richiesta dell'utente eseguita ogni cappio del filo.
  • Runtime Controllore: controlli per quanto ai suoi figli è permesso correre.

Ad esempio, se hai specificato Runtime Controller 10 secondi, JMeter eseguirà il test per 10 secondi.

Altri controllori importanti

  • operazione Controller: misura il tempo complessivo preso a finire un'esecuzione di prova
  • Includere Controller: è progettato per utilizzare un piano di test esterno. Questo controller consente di utilizzare più piani di test in JMeter. Vedere i dettagli in JMeter Test di Performance.

Esempio di controller di loop

Questa sezione mostra le istruzioni dettagliate per aggiungere Controllore di loop impostato sul piano di test delle prestazioni corrente.

Il Loop Controller fa funzionare i campionatori un certo numero di volte, oltre al valore del loop specificato per il Thread Group. Ad esempio, se tu

  • Aggiungi una richiesta HTTP a un controller di loop con un numero di loop pari a 50
  • Configurare il numero di loop del gruppo di thread su 2
  • Poi, JMeter invierà un totale di 50 * 2 = 100 richieste HTTP.

Questa è la tabella di marcia di questo esempio:

Esempio di controller di loop

Passaggio 1) Configurazione del gruppo di thread

We riutilizzazione il passaggio 1, 2 del tutorial JMeter Test di Performance.

  1. Aggiungi gruppo di thread

Fare clic destro sul Piano di test e aggiungi un nuovo gruppo di thread: Aggiungi-> Discussioni (utenti) ->Gruppo discussione

Ma nel pannello di controllo del gruppo thread, inserisci Proprietà thread come segue:

Aggiungi gruppo di thread

Farà prima richiesta dell'utente al server web google.com ed eseguirlo 2 volte.

  1. Aggiungi JMeter elementi

Aggiungi la richiesta HTTP predefinita a www.google.com.

  1. Aggiunta del controller di loop

Fare clic con il pulsante destro del mouse su Gruppo thread -> Controller logico -> Controller di loop

Aggiunta del controller di loop

Passaggio 2) Configurazione del controller di loop

Aggiungere il valore 50 al campo Conteggio loop come nella figura seguente. Lo farà prima richiesta dell'utente al server web google.com eseguirlo 50 volte, oltre al valore del loop =2, specificato per il gruppo di thread sopra. Quindi JMeter invierà un totale di 2 * 50 = 100 Richieste HTTP.

Configurazione del controller di loop

Fare clic con il pulsante destro del mouse su Controller loop, Aggiungi -> Campionatore -> Richiesta HTTP

Configurazione del controller di loop

Passaggio 3) Aggiungi Visualizza risultati nella tabella

Riutilizziamo il passaggio 2 in Timer per aggiungere Visualizza risultati nella tabella

Quindi il piano di test è mostrato nella figura seguente

Aggiungi Visualizza risultati nella tabella

Passaggio 4) Esegui il test

Ora torna a Visualizza risultati nella tabella, fai clic sul pulsante Avvia sulla barra dei menu (Ctrl+R) per eseguire un test

Come mostrato nella figura seguente, JMeter Simula una richiesta dell'utente, che viene inviato 100 volte al server web http://www.google.com/. Il test viene interrotto dopo che una richiesta utente è stata inviata 100 volte.

Esegui il test

Troubleshooting

  1. Se riscontri il problema durante l'esecuzione dello scenario sopra... procedi come segue
  2. Controlla se ti stai connettendo a Internet tramite un proxy. Se sì, rimuovi il proxy.
  3. Apri una nuova istanza di Jmeter
  4. Aprire il ControllerTestPlan.jmx in Jmetro
  5. Fare clic su Gruppo di thread -> Visualizza risultato nella tabella
  6. Esegui il test