尝试在Jmeter中设置变量时出错500

时间:2017-10-22 09:33:47

标签: variables groovy jmeter

我试图在groovy和Jmeter中创建一个变量。 我希望它是我计划运行的while循环的计数器。 我想在每次迭代中向此计数器添加1。 问题是我无法将其设置为变量,以后我可以在另一个采样器的程序中使用它。

int while_counter = 0;
vars.put("while_counter",0);
System.out.println("Loop Counter");

我只是想创建一个整数,它将成为一个计数器,所有采样器都会知道,并且可以解决他$ {while_counter}。

并执行while_counter = while_counter ++ 我缺少什么

Response code: 500
Response message: javax.script.ScriptException: javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: org.apache.jmeter.threads.JMeterVariables.put() is applicable for argument types: (java.lang.String, java.lang.Integer) values: [while_counter, 0]
Possible solutions: put(java.lang.String, java.lang.String), get(java.lang.String), putAt(java.lang.String, java.lang.Object), wait(), any(), dump()

有人可以建议如何在Jmeter中创建一个简单的while循环 并将1添加到计数器

2 个答案:

答案 0 :(得分:1)

User Defined Variable / User Parameters

中的测试计划开始时将变量“ i ”定义为0/1

while循环条件:

${__groovy(vars["i"].toInteger() < 5)}

在内部循环中添加JSR223 Sampler / Preprocessor并增加它:

  String i = vars.get("i"); 
  int counter = Integer.parseInt(i); 
  counter++; 
  vars.put("i", "" + counter); 

不要使用Javascript函数,因为它不像Groovy那样扩展

答案 1 :(得分:0)

建议尽可能避免编写脚本:

  1. 如果您正在运行&#34;内部&#34;由Loop ControllerWhile Controller驱动的循环是有意义的,添加一个Counter测试元素,每次调用它时都会生成一个递增的数字。您可以使用&#34; normal&#34;来查看计数器的当前值。 JMeter变量在计数器&#34;参考名称&#34;中定义。节
  2. 对于Thread Group级迭代,您可以使用__iterationNum()函数
  3. 关于你的问题本身,你不能将整数传递给{{1}}方法,如果你需要在JMeter变量中存储一个整数,你应该选择vars.putObject()方法。