如何在JMeter中拼接字符串与整数值并解决相关运行报错?
错误原因
报错是因为混用了Java风格的强类型变量声明和Groovy范围遍历语法,int i的声明导致语法解析歧义,Groovy误将字符串后的+i识别为正号运算符调用,而String类型没有对应positive()方法,因此抛出异常。
正确实现方案
方案1:Groovy原生写法(推荐)
使用Groovy范围遍历+GString插值,性能更高、可读性更强,也不会出现语法歧义:
for (i in 1..100) { def cloudItemId = "cloudItemId${i}" def deviceItemId = "deviceItemId${i}" // 需持久化变量给JMeter后续节点使用的话,添加如下逻辑: // vars.put(cloudItemId, "你要存储的对应值") }
方案2:Java风格for循环写法
习惯Java语法的可以用标准三段式for循环,也能避免语法问题:
for (int i = 1; i <= 100; i++) { def cloudItemId = "cloudItemId" + i def deviceItemId = "deviceItemId" + i }
注意事项
- 拼接得到的变量如果需要传递给JMeter后续采样器使用,必须调用
vars.put()方法存入线程上下文,存入时非String类型需要先转成字符串。 - JMeter Groovy脚本优先使用GString插值做字符串拼接,比
+运算符拼接性能更好,也更符合Groovy语法规范。
内容的提问来源于stack exchange,提问作者Surya Chandra
相关产品推荐
相关产品推荐

