Jmeter Groovy实例化的类列表

时间:2018-10-09 17:24:27

标签: groovy jmeter

我最终的目标是:在Jmeter测试计划中,经过HTTP Gets迭代之后,构建一个具有键(某些ID)和Value作为类列表的Map。

在测试计划的开始,我定义了一个类,该类对于我的其余测试计划必须可用。 (不确定如何正确使用此props.put(“ XYZ”,XYZ());请注意在每次迭代中都进一步阅读...)

class XYZ{
   String foo;
   String bar;
}
props.put("XYZ", XYZ()); 

Map<String,List> myMap = new HashMap<String,List>();
vars.putObject("myMap", myMap);

该类类型XYZ和myMap必须可用于ForEach PostProcessor循环,因为每次我进行新的迭代时,都需要该类XYZ的“新”列表。我确实从上面得到错误? props.put(“ XYZ”,XYZ());类的列表是动态的,并且每次访问ForEach迭代时都由HTTP GET的响应数据构建。

现在在Jmeter测试计划中,我还有一个ForEach循环,在新HTTP Get的每次迭代中,我都收集响应数据。在该HTTP Get的postProcessor中,我需要实例化该类XYZ的“新”列表。尝试了这个但出错了???:

def XYZ= props.get("XYZ");
List<XYZ> tempList = new ArrayList<XYZ>();

cnt = 2; // Find the size of the list from Response data, for example say it is now 2

then from Response data I will build my list of that class say for eaxmple.


for (i=0; i<cnt; i++){
    t1 = new XYZ();
    t1.foo = "X"+"-"+i.toString();
    t1.bar = "Y"+"-"+i.toString();
    tempList.add(t1)
}

一旦我建立了tempList,就将其添加到地图中

  myMap = vars.get("myMap", myMap);
  newKey = "Obtain from Response Data"
  myMap.put(newKey, tempList)

因此,每当我进行一次ForEach迭代时,我将需要一个新的不同类XYZ的列表。创建该列表后,我需要将其添加到最终地图中。

每次尝试获取新的tempList时,我都会花费很多时间,它会覆盖以前的旧列表。

0 个答案:

没有答案