Javascript 在JMeter和BeanShell中,如何使变量小写?
在JMeter的用户参数中,如何使变量小写 左列Javascript 在JMeter和BeanShell中,如何使变量小写?,javascript,jmeter,lowercase,beanshell,Javascript,Jmeter,Lowercase,Beanshell,在JMeter的用户参数中,如何使变量小写 左列 my_lowercase_variable 右栏 ${__BeanShell('${my_variable}'.toLowerCase())} //fails 或 这样${my_lowercase_variable}就是${my_variable}的小写字母。试过引用、不引用、转义等等。不走运。欢迎使用任何技巧。此用法中的beanshell和JavaScript函数将失败,因为它们不会导入使用.toLowerCase所需的包 如果确实需要使
my_lowercase_variable
右栏
${__BeanShell('${my_variable}'.toLowerCase())} //fails
或
这样
${my_lowercase_variable}
就是${my_variable}
的小写字母。试过引用、不引用、转义等等。不走运。欢迎使用任何技巧。此用法中的beanshell和JavaScript函数将失败,因为它们不会导入使用.toLowerCase
所需的包
如果确实需要使用函数转换大小写(而不是首先将它们声明为小写),则可能需要编写完整的beanshell后处理器脚本以导入所需的包
String blah = "${my_initial_reference}"; //
vars.put("blah", blah.toLowerCase()); //${blah} = "its in caps" now available
现在,通过名称/值对,我可以将${blah}作为值映射到任何进程名称所需的值
请注意,调试响应仍将以大写形式显示初始值,但您还将看到blah=its in caps,这正是我想要使用的 嗯,你的豆壳代码对我不起作用。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
只需添加一个函数即可
${__lowercase(${VAL},VALUE)}
${__uppercase(${VAL},VALUE)}
注:VAL可以是相关值或参数化值(e.r VAL=至下限或VAL=至上限)。我们可以在beanshell(预处理器/后处理器/采样器)中使用此函数。Jmeter版本使用(2.6)
可以在脚本中任何需要的地方使用它作为${VALUE}。${{uu javaScript('${foobar}.toLowerCase())}
可以工作。如果输出为${foobar}
而不是所需值
,则表示尚未声明变量
请注意,变量仅在分析“用户定义变量”组件后定义。变量不能在单个“用户定义变量”组件中重复使用,例如:
该图像中的第二行将无法引用第一行中的变量my_variable
。为了能够引用第一个变量,需要两个“用户定义变量”组件。第一个变量位于第一个组件中,第二个变量位于第二个组件中,例如:
这样,${my\u lower\u case\u variable}
将成功地转换为某些值
${uuu BeanShell(${myu variable}).toLowerCase())}
也可以使用。(请注意,BeanShell需要双引号。问题中的代码使用单引号。)
另一种方法是使用:
${uuujavascript(vars.get('my\u variable').toLowerCase())}
${\uuu BeanShell(vars.get(“my\u变量”).toLowerCase())}
var blah=“${my_initial_reference}”
等等,toLowerCase() 实际上我很接近,BeanShell采样器可以产生一个变量。只要我不更改它,我就可以将数据复制到另一个变量,即已更改的变量,然后引用该变量。@BlackGaff,“不导入使用
.toLowerCase
所需的包”是什么意思?(类似于“str”。toLowerCase()
可以在Bean Shell和Javascript中工作,而不导入任何内容。)很抱歉给您带来不便,我已经键入了它,并且没有复制/粘贴,因此我确实忘记了您描述的引号。下载是使用此解决方案的先决条件吗?
String blah = "${my_initial_reference}";
vars.put("blah", blah.toLowerCase()); //${blah} now available
${__lowercase(${VAL},VALUE)}
${__uppercase(${VAL},VALUE)}