Domanda

Parametri dell'utente in JMeter, come posso fare una minuscola variabile?

colonna di sinistra

my_lowercase_variable

Colonna Destra

${__BeanShell('${my_variable}'.toLowerCase())}  //fails

o

${__javaScript('${my_variable}'.toLowerCase())}  //fails

Tale che ${my_lowercase_variable} è in minuscolo di ${my_variable}. Provato con preventivo e senza e fuggire e così via. Senza fortuna. Eventuali trucchi o suggerimenti benvenuti.

È stato utile?

Soluzione

Nota per sé.

Risulta essere a due liner BeanShell Sampler piuttosto che un comando __BeanShell. Non esattamente negli esempi purtroppo.

ho aggiunto il BeanShell Sampler sotto il filo gruppo, poi ha fatto una variabile. Nessun parametro in forma sono stati richiesti solo lo script due rivestimento di seguito. Finché io non cambio la variabile posso copiare i dati a un'altra variabile, cambiamento che, invece, e poi fare un riferimento valore a tale ovunque sia necessario.

Per prima cosa definire una variabile in alcuni Parametri utente o tali vale a dire:

Name: my_initial_reference 
Value: ITS IN CAPS

Aggiungi un Bean Sampler sotto le Preferenze utente o lista di definizione (proprio accanto, non è un processo figlio)

Mettere in:

String blah = "${my_initial_reference}"; // 
vars.put("blah", blah.toLowerCase());  //${blah} = "its in caps" now available

Ora sotto che, con coppie nome / valore Posso tracciare $ {} bla come valore a qualsiasi nome del processo lo richiede.

Si noti che la risposta di debug mostrerà ancora il valore iniziale in maiuscolo, ma vedrete anche bla = la sua in capsule che è quello che ho voluto usare.

Altri suggerimenti

Hmmmm, il codice shell di fagioli non ha funzionato per me. Il campionatore guscio del seme restituito:

Response code: 500
Response message: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval  Sourced file: inline evaluation of: ``String blah = AAP;  vars.put("blah", blah.toLowerCase());  //${blah} now availab . . . '' : Typed variable declaration : Void initializer

Ho aggiunto due doppi apici per risolverlo:

String blah = "${my_initial_reference}";
vars.put("blah", blah.toLowerCase());  //${blah} now available

può semplicemente aggiungere una funzione

${__lowercase(${VAL},VALUE)}
${__uppercase(${VAL},VALUE)}

Nota: VAL può essere correlata o il valore paramiterized (e.r VAL = per abbassare o VAL = TO SUPERIORE). Possiamo usare questa funzione in BeanShell (pre-processore / post-processore / campionatore). Versione Jmeter utilizzando (2.6).

Può essere utilizzato ovunque vogliamo nello script da $ {valore}.

${__javaScript('${foobar}'.toLowerCase())} ha il lavoro. Se l'uscita è ${foobar} invece di desired value, significa che la variabile non è stata dichiarata

Si noti che solo le variabili sono definite dopo la componente "definito dall'utente Variabile" è stato analizzata . Le variabili non possono essere riutilizzati all'interno di un unico "variabile definita dall'utente" componente per esempio:.

entrare descrizione dell'immagine qui

La seconda riga della immagine non sarà in grado di fare riferimento alla my_variable variabile nella prima fila. Per essere in grado di fare riferimento alla prima variabile, è necessario due componenti "User Defined variabili". La prima variabile sarà nel primo componente e il secondo variabile nel secondo, per esempio:.

entrare descrizione dell'immagine qui

Con questo, ${my_lower_case_variable} sarà successo convertito in some value.


${__BeanShell("${my_variable}".toLowerCase())} lavora troppo. (Nota che Bean Shell richiede le virgolette. Il codice nella tua domanda utilizza virgolette singole.)

Un altro modo è quello di utilizzare vars.get :

  • ${__javaScript(vars.get('my_variable').toLowerCase())}

  • ${__BeanShell(vars.get("my_variable").toLowerCase())}

Il BeanShell e funzioni JavaScript in questo uso fallirà, perché non importano i pacchetti necessari per poter utilizzare .toLowerCase.

Se si ha realmente bisogno di utilizzare una funzione per caso convert (piuttosto che dichiarandoli in minuscolo, in primo luogo), potrebbe essere necessario scrivere uno script di post-processore completo BeanShell al fine di importare i pacchetti necessari.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top