如何在jmeter请求的请求中从列表中传递值

时间:2018-07-11 12:16:11

标签: json jmeter

我正在使用JSON提取器从JSON响应中提取两个不同列表中的2个两组值

Extractor1

enter image description here

我正在使用foreach循环遍历list1的值,因此我可以轻松地一对一地从list1中获取值:

enter image description here

但是我想在此foreach循环内的请求之一中从list2发送值。 如何从list2一对一获取值,以便将其作为参数发送:

enter image description here

将为列表中的每个项目调用此HTTP请求。我想在给定的HTTP请求中将list2的值添加到lastUpdated参数中。该怎么做?

我做了一些研究,得知我们可以使用Beanshell PreProcessor来完成此任务。我在Beanshell PreProcessor中添加了以下代码:

idx = Integer.parseInt(vars.get("item_no"))-1;
vars.put("date", vars.get("list2")[idx]);

并尝试通过以下日期:

{"qId":"${q_oid}","items":[{"itemId":"${qi_id}","lastUpdated":"${date}"}]}

但是我在lastUpdated arg中变得空白。 注意:我已经在测试计划的用户定义变量中添加了“日期”

1 个答案:

答案 0 :(得分:1)

list2变量另存为:list_1 list_2 list_3,...

因此在ForEach Controller

内更改变量名称
vars.put("date", vars.get("list2_" + idx));
  

例如,当输入变量的名称为inputVar时,应定义以下变量:

     

inputVar_1 =温迪   inputVar_2 =查尔斯   inputVar_3 =彼得   inputVar_4 =约翰

请注意,JMeter还在ForEach Controller中持有特殊变量:

  

JMeter将循环索引显示为名为 jm __ idx的变量。因此,例如,如果您的循环控制器名为FEC,则可以通过$ {__ jm__FEC__idx}访问循环索引。索引从0开始