3

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

左栏

my_lowercase_variable

右栏

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

或者

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

这样${my_lowercase_variable}就是小写的${my_variable}。尝试了引用和没有和转义等。没运气。欢迎任何技巧或提示。

4

6 回答 6

3

注意自我。

事实证明它是 BeanShell Sampler 中的两个衬里,而不是 __BeanShell 命令。不幸的是,不完全在示例中。

我在Thread Group下添加了BeanShell Sampler,然后做了一个变量。表单中不需要任何参数,只需要下面的两个衬里脚本。只要我不更改变量,我就可以将数据复制到另一个变量,改为更改它,然后在需要的地方对其进行值引用。

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

Name: my_initial_reference 
Value: ITS IN CAPS

在 User Preferences 或定义列表下添加一个 Bean Sampler(接下来,它不是子进程)

投放:

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

现在,在使用名称/值对的情况下,我可以将 ${blah} 作为值映射到任何需要它的进程名称。

请注意,调试响应仍会以大写字母显示初始值,但您还会看到 blah=its 大写字母,这是我想要使用的。

于 2011-01-21T23:46:26.833 回答
3

只需添加一个功能

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

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

可以在脚本中任何我们想要的地方使用它作为 ${VALUE}。

于 2012-07-06T07:47:14.137 回答
3

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

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

在此处输入图像描述

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

在此处输入图像描述

这样,${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 回答
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
于 2011-05-25T07:10:01.473 回答
0

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

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

于 2011-01-21T16:04:02.020 回答
-1

var blah = "${my_initial_reference}";

blah.toLowerCase();

于 2020-11-06T01:50:54.497 回答