3

JMeter のユーザー パラメータで、変数を小文字にするにはどうすればよいですか?

左の列

my_lowercase_variable

右の列

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

また

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

の小文字${my_lowercase_variable}です${my_variable}。引用あり、なし、エスケープなどを試しました。運がない。どんなトリックやヒントも大歓迎です。

4

6 に答える 6

3

簡単に機能を追加できます

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

注:VALは、相関値またはパラメータ化された値(ER VAL =TOLOWERまたはVAL=TO UPPER)にすることができます。この関数はBeanshell(プリプロセッサ/ポストプロセッサ/サンプラー)で使用できます。(2.6)を使用したJmeterバージョン。

スクリプト内のどこでも${VALUE}として使用できます。

于 2012-07-06T07:47:14.137 に答える
3

${__javaScript('${foobar}'.toLowerCase())} 動作します。出力が${foobar}の代わりである場合desired value、変数が宣言されていないことを意味します

変数は、「ユーザー定義変数」コンポーネントが解析されたにのみ定義されることに注意してください。単一の「ユーザー定義変数」コンポーネント内で変数を再利用することはできません。例:

ここに画像の説明を入力

そのイメージの 2 行目はmy_variable、1 行目の変数を参照できません。最初の変数を参照できるようにするには、2 つの「ユーザー定義変数」コンポーネントが必要です。最初の変数は最初のコンポーネントにあり、2 番目の変数は 2 番目のコンポーネントにあります。

ここに画像の説明を入力

これで、${my_lower_case_variable}正常に に変換されsome valueます。


${__BeanShell("${my_variable}".toLowerCase())}あまりにも動作します。(Bean Shellには二重引用符が必要であることに注意してください。質問のコードでは一重引用符を使用しています。)

別の方法は、次を使用することvars.getです。

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

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

于 2015-10-09T11:01:47.980 に答える
3

自分の為にメモする。

__BeanShell コマンドではなく、BeanShell Sampler の 2 つのライナーであることが判明しました。残念ながら、例では正確ではありません。

Thread Group の下に BeanShell Sampler を追加し、変数を作成しました。以下の 2 つのライナー スクリプトだけで、フォームのパラメーターは必要ありませんでした。変数を変更しない限り、データを別の変数にコピーし、代わりにそれを変更して、必要に応じてその値への参照を作成できます。

最初にいくつかのユーザー パラメータなどで変数を定義します。

Name: my_initial_reference 
Value: ITS IN CAPS

ユーザー設定または定義リストの下に Bean Sampler を追加します (次は子プロセスではありません)。

入れる:

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

その下で、名前と値のペアを使用して、 ${blah} を値として必要なプロセス名にマップできます。

Debug 応答には大文字で初期値が表示されますが、私が使用したかった大文字で blah=its も表示されることに注意してください。

于 2011-01-21T23:46:26.833 に答える
2

うーん、あなたのビーンシェルコードは私にとってはうまくいきませんでした。ビーン シェル サンプラーは以下を返しました。

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

それを解決するために2つの二重引用符を追加しました:

String blah = "${my_initial_reference}";
vars.put("blah", blah.toLowerCase());  //${blah} now available
于 2011-05-25T07:10:01.473 に答える
0

を使用するために必要なパッケージをインポートしないため、この使用における beanshell および JavaScript 関数は失敗します.toLowerCase

大文字と小文字を変換する関数を本当に使用する必要がある場合 (最初に小文字として宣言するのではなく)、必要なパッケージをインポートするために完全な Beanshell ポストプロセッサ スクリプトを作成する必要がある場合があります。

于 2011-01-21T16:04:02.020 に答える