【问题标题】:Parse an array from the response message using JMeter使用 JMeter 从响应消息中解析数组
【发布时间】:2014-01-20 12:10:42
【问题描述】:

我是 Jmeter 工具的初学者。 我使用 JMeter 访问 URL 并获得 JSON 格式的响应消息。 我想解析响应以提取每个数组元素并使用它附加到另一个 URL 的尾部。你能告诉我怎么做吗?

example: { "reply": { "code": "111", "status": "SUCCESS", "customer": [ "222-a", "b-333", "44-4", "s-555", "666", "777", "88-8" ] } } 

【问题讨论】:

  • 示例:{“回复”:{“代码”:“111”,“状态”:“成功”,“客户”:[“222-a”,“b-333”,“ 44-4”、“s-555”、“666”、“777”、“88-8”] } }

标签: jmeter


【解决方案1】:

您可以使用 正则表达式提取器(作为 URL 采样器的子级)首先提取值数组:

Reference name: ary
Regular Expression: \[([^\]]+)\]
Template: $1$
Match No: 1

然后使用另一个正则表达式提取器来提取值:

Apply To JMeter variable: ary

Reference name: vals
Regular Expression: "([^"]+)"
Template: $1$
Match No: -1

匹配号 -1 创建变量 vals_1 .. vals_7,然后您可以在 ForEach 控制器 中使用它来分配给 JMeter 变量:

Input variable prefix: vals
Output variable name: id
[v] Add '_' before number?

现在您可以在嵌套 URL 采样器中使用 JMeter 变量 ${id} 在 URL 中传递客户 ID。

【讨论】:

  • 非常感谢您的回复。您的最后一条评论正是我正在尝试做的“现在您可以在嵌套的 URL 采样器中使用 JMeter 变量 ${id} 在 URL 中传递客户 ID。”但在不同的线程组中。你能告诉我如何在下面的线程组中使用这个变量吗?谢谢
  • 循环正则表达式提取器的所有输出。你能告诉我如何循环返回多个值的正则表达式后处理器的结果吗?
  • @Sashi,JMeter 变量是当前线程的本地变量,据我所知,您不能将它们传递给其他线程。但是,您可以尝试将它们(在 foreach 控制器中)保存到下一个线程组中的 CSV 控制器中使用的文件中,请参阅stackoverflow.com/questions/8352281/…(顺便说一句,我从未尝试过。)
  • @Sashi,Foreach 控制器将值分配给一个变量(上面文本中的id),您可以在作为 foreach 子节点的 URL 采样器中展开该变量。
猜你喜欢
  • 1970-01-01
  • 2021-06-03
  • 2021-06-02
  • 2012-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多