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.