在JMeter和BeanShell中,如何将变量设为小写?

时间:2011-01-21 04:11:49

标签: javascript jmeter lowercase beanshell

在JMeter的用户参数中,如何将变量设为小写?

左栏

my_lowercase_variable

右栏

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

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

${my_lowercase_variable}${my_variable}的小写字母。尝试引用,没有和逃避等。没运气。欢迎任何技巧或提示。

6 个答案:

答案 0 :(得分:3)

自我注意。

结果是BeanShell Sampler中的两个内联而不是__BeanShell命令。不幸的是,不完全在示例中。

我在Thread Group下添加了BeanShell Sampler,然后创建了一个变量。表格中没有参数只需要下面的两个衬垫脚本。只要我不更改变量,我就可以将数据复制到另一个变量,而是更改它,然后在需要的地方对其进行值引用。

首先在某些用户参数等中定义变量 即:

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 = it in caps,这是我想要使用的。

答案 1 :(得分:2)

嗯,你的bean shell代码对我不起作用。豆壳采样器返回:

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

我添加了两个双引号来解决它:

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

答案 2 :(得分:2)

只需添加功能

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

注意:VAL可以是相关值或对数值(e.r VAL = TO LOWER或VAL = TO UPPER)。我们可以在beanshell(预处理器/后处理器/采样器)中使用此功能。 Jmeter版本使用(2.6)。

可以在脚本中的任何位置使用它作为$ {VALUE}。

答案 3 :(得分:2)

${__javaScript('${foobar}'.toLowerCase())} 确实有效。如果输出为${foobar}而不是desired value,则表示该变量尚未声明

请注意,变量仅在 “用户定义的变量”组件已解析之后定义。变量不能在单个“用户定义变量”组件中重用,例如:

enter image description here

该图像中的第二行将无法引用第一行中的变量my_variable。为了能够引用第一个变量,需要两个“用户定义变量”组件。第一个变量将在第一个组件中,第二个变量在第二个组件中,例如:

enter image description here

有了这个,${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())}

答案 4 :(得分:0)

此用法中的beanshell和JavaScript函数将失败,因为它们不会导入您需要的包以使用.toLowerCase

如果你真的需要使用一个函数来转换大小写(而不是首先将它们声明为小写),你可能需要编写一个完整的beanshell后处理器脚本来导入所需的包。

答案 5 :(得分:-1)

var blah =“ $ {my_initial_reference}”;

blah.toLowerCase();