我有一个简单的循环控制器,一个Counter配置元素和一个运行Groovy代码的JSR223 Sampler。我的计数器设置为从0开始,递增1到最大值3,并设置为名为' idx'的变量。
在我的JSR223 Sampler中,我使用log.info(${idx});
记录idx的值 - 它总是打印第一个迭代值(在我的情况下为0),用于每次循环迭代。
我禁用了这个JSR223采样器并添加了一个BeanShell采样器,执行相同的日志语句log.info(${idx});
,并且它正在递增 - 我得到迭代的值为0,1,2。
我需要获取一些JSON,将它们映射到对象,进行一些调整,然后将它们映射回JSON。 JSONParser,JSONObject和JSONArray类似乎在BeanShell Sampler中工作,但我对Groovy的JsonSlurper和JsonBuilder类更加熟悉,并且更愿意使用它们。
如果这样做有所不同,所有这些步骤都在测试片段中。有人有主意吗?这是一个错误吗?
答案 0 :(得分:2)
从不直接在脚本中引用JMeter Function or Variables,使用"参数"这部分就像:
或者使用vars
简写代表JMeterVariables类实例,如:
log.info(vars.get('idx'))
原因在于:
有关在JMeter测试中使用带有Apache Groovy - Why and How You Should Use It的Groovy脚本的详细信息,请参阅JSR223 Elements文章。