【问题标题】:How to pass values from a list in request of jmeter request如何在 jmeter 请求的请求中从列表中传递值
【发布时间】:2018-07-11 12:16:10
【问题描述】:

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

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

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

将为列表中的每个项目调用此 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 中变得空白。 注意:我在测试计划的用户定义变量中添加了“日期”

【问题讨论】:

    标签: json jmeter


    【解决方案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 控制器中包含特殊变量:

    JMeter 会将循环索引公开为名为 jm__idx 的变量。例如,如果您的 Loop Controller 名为 FEC,那么您可以通过 ${__jm__FEC__idx} 访问循环索引。索引从 0 开始

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多