jMeter - Funzioni

Funzioni JMeter e variabili utente

Le funzioni JMeter sono valori speciali che possono popolare i campi di qualsiasi Sampler o altro elemento in un albero di prova.

  • Una chiamata di funzione ha questo aspetto:

${__functionName(var1,var2,var3)}
  • _functionName corrisponde al nome di una funzione. Per esempio${__threadNum}.

  • Se un parametro di funzione contiene una virgola, assicurati di eseguire l'escape con "\" come mostrato di seguito -

${__time(EEE\, d MMM yyyy)}
  • Le variabili sono referenziate come -

${VARIABLE}

Elenco delle funzioni

La tabella seguente elenca un gruppo di funzioni vagamente raggruppate in tipi:

Tipo di funzione Nome Commento
Informazione threadNum Ottieni il numero del thread.
Informazione samplerName Ottieni il nome del campionatore (etichetta).
Informazione machineIP Ottieni l'indirizzo IP della macchina locale.
Informazione nome della macchina Ottieni il nome della macchina locale.
Informazione tempo Restituisce l'ora corrente in vari formati.
Informazione log Registra (o visualizza) un messaggio (e restituisci il valore).
Informazione logn Registra (o visualizza) un messaggio (valore restituito vuoto).
Ingresso StringFromFile Legge una riga da un file.
Ingresso FileToString Leggi un intero file.
Ingresso CSVRead Leggi da file delimitato CSV.
Ingresso XPath Usa un'espressione XPath per leggere da un file.
Calcolo contatore Genera un numero crescente.
Calcolo intSum Aggiungi numeri int.
Calcolo longSum Aggiungi numeri lunghi.
Calcolo Casuale Genera un numero casuale.
Calcolo RandomString Genera una stringa casuale.
Calcolo UUID Genera un UUID di tipo 4 casuale.
Scripting BeanShell Esegui uno script BeanShell.
Scripting javaScript Elabora JavaScript (Mozilla Rhino).
Scripting jexl, jexl2 Valuta un'espressione Commons Jexl.
Proprietà proprietà Leggere una proprietà.
Proprietà P Leggere una proprietà (metodo abbreviato).
Proprietà setProperty Imposta una proprietà JMeter.
Variabili Diviso Suddividi una stringa in variabili.
Variabili V Valuta il nome di una variabile.
Variabili eval Valuta un'espressione variabile.
Variabili evalVar Valuta un'espressione archiviata in una variabile.
Corda regexFunction Analizza la risposta precedente utilizzando un'espressione regolare.
Corda escapeOroRegexpChars Cita i meta caratteri usati dall'espressione regolare ORO.
Corda char Genera valori di caratteri Unicode da un elenco di numeri.
Corda unescape Elabora le stringhe contenenti gli escape Java (ad esempio \ n & \ t).
Corda unescapeHtml Decodifica le stringhe con codifica HTML.
Corda escapeHtml Codifica le stringhe utilizzando la codifica HTML.
Corda TestPlanName Restituisce il nome del piano di test corrente.
  • Esistono due tipi di funzioni:

    • Valori statici definiti dall'utente (o variabili)

    • Funzioni integrate

  • I valori statici definiti dall'utente consentono all'utente di definire le variabili da sostituire con il loro valore statico quando un albero di test viene compilato e inviato per essere eseguito.

  • Le variabili non possono essere annidate; cioè${Var${N}} non funziona.

  • La funzione __V (variabile) (versioni successive alla 2.2) può essere utilizzata per fare ciò - $ {__ V (Var $ {N})}.

  • Questo tipo di sostituzione è possibile senza funzioni, ma è meno conveniente e meno intuitivo.

Dove utilizzare funzioni e variabili

Le funzioni e le variabili possono essere scritte in qualsiasi campo di qualsiasi componente di test.

Le seguenti funzioni dovrebbero funzionare bene in un piano di test:

  • intSum
  • longSum
  • machineName
  • BeanShell
  • javaScript
  • jexl
  • random
  • time
  • funzioni di proprietà
  • funzioni di registro

Le funzioni utilizzate nel piano di test hanno alcune limitazioni. Le variabili di thread di JMeter non saranno state completamente impostate quando le funzioni vengono elaborate, quindi i nomi delle variabili passati come parametri non verranno impostati ei riferimenti alle variabili non funzioneranno. Quindi, split () e regex () e le funzioni di valutazione delle variabili non funzioneranno. La funzione threadNum () non funzionerà e non ha senso a livello di piano di test.

Riferimento a variabili e funzioni

  • Il riferimento a una variabile in un elemento di test viene eseguito racchiudendo il nome della variabile tra "$ {" e "}".

  • Si fa riferimento alle funzioni nello stesso modo, ma per convenzione i nomi delle funzioni iniziano con "__" per evitare conflitti con i nomi dei valori utente.

  • Alcune funzioni accettano argomenti per configurarle e vanno tra parentesi, delimitate da virgole. Se la funzione non accetta argomenti, le parentesi possono essere omesse. Ad esempio:

${__BeanShell(vars.put("name"\,"value"))}
  • In alternativa, puoi definire il tuo script come una variabile, ad esempio nel piano di test -

SCRIPT     vars.put("name","value")
  • Lo script può quindi essere referenziato come segue:

${__BeanShell(${SCRIPT})}

La finestra di dialogo Assistente funzione

La finestra di dialogo Function Helper è disponibile da JMeter Options tab.

  • Utilizzando l'helper di funzione, è possibile selezionare una funzione dal menu a discesa e assegnare valori per i suoi argomenti. La colonna di sinistra nella tabella fornisce una breve descrizione dell'argomento e la colonna di destra è dove scrivi il valore per quell'argomento. Diverse funzioni accettano argomenti diversi.

  • Dopo averlo fatto, fai clic sul pulsante "Genera" e viene generata la stringa appropriata, che puoi copiare e incollare nel piano di test ovunque sia necessario.

Variabili predefinite

Alcune variabili sono definite internamente da JMeter. Sono -

  • COOKIE_cookiename: contiene il valore del cookie.

  • JMeterThread.last_sample_ok - indipendentemente dal fatto che l'ultimo campione fosse OK o meno - vero / falso. Nota: viene aggiornato dopo l'esecuzione di PostProcessors e Assertions.

  • Variabili START.

Proprietà predefinite

Alcune proprietà integrate sono definite da JMeter. Questi sono elencati di seguito. Per comodità, le proprietà START vengono copiate anche nelle variabili con lo stesso nome.

  • START.MS: ora di inizio di JMeter in millisecondi.

  • START.YMD - Ora di inizio di JMeter come aaaaMMgg.

  • START.HMS - Ora di inizio di JMeter come HHmmss.

  • TESTSTART.MS: ora di inizio del test in millisecondi.

Notare che le variabili / proprietà START rappresentano l'ora di avvio di JMeter, non l'ora di inizio del test. Sono destinati principalmente all'uso nei nomi di file, ecc.