[英]JMeter - Groovy script concatenation of variables
Groovy是JMeter中的首选脚本
我们建议使用Apache Groovy或任何支持JSR223的Compilable接口的语言。
JSR233 Sampler中的以下代码在Java中可用,但在Groovy中不可用
String a= "0"+"1" +
"2"
+"3";
log.info(a);
我发现+
运算符无法按预期工作的原因 ,
但是我想将几个变量连接到一个脚本的解决方案是什么?
我未能使用使用三个引号的答案"""The row Id is: ${row.id}..."""
目前,尽管不建议使用Java作为脚本语言,并使用JMeter $ {variable}:
在这种情况下,请确保脚本不使用任何使用$ {varName}的变量,因为缓存将仅采用$ {varName}的第一个值
String text ="...<id>${id}</id><id2>${id2}</id2>...";
在这种情况下,使用常规的更好的方法是什么?
编辑 :
尝试使用<<
但在拆分到新行时出现其他错误
String text ="<id>" <<vars["id1"] << "<id><id2>"
<< vars["id2"] << "<id2>";
收到错误:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script12.groovy: 2: unexpected token: << @ line 2, column 1.
<< vars["id2"] << "<id2>";
为什么不使用:
字符串文本=“ <id>” << vars [“ id1”] <<“ <id> <id2>” << vars [“ id2”] <<“ <id2>”;
这个对我有用
如果我有一个像您一样的哈希图,我可以尝试:
def vars = ["id": "value", "id2": "value2", "id3": "value3"]
String text = ""
vars.each { k, v ->
text += "<${k}>${v}</${k}>"
}
println text
Groovy使用换行符指示语句的结尾,除非它知道下一行必须扩展当前行。 在下一行的开始处支持许多二进制运算符。 “ +”和“-”运算符具有二进制和一元变量,当前(Groovy版本至少为2.5.x)在下一行的开头不支持这些运算符。 您可以将运算符放在前一行的末尾(如您的第一行),也可以在前一行的末尾使用换行符:
String a = "0" + "1" +
"2" \
+ "3"
log.info(a)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.