【问题标题】:jmeter Regular Expression Extractor to extract string from multi stringjmeter正则表达式提取器从多字符串中提取字符串
【发布时间】:2017-08-16 21:56:21
【问题描述】:

我在响应消息中有多个 grp 和名称字符串。我想根据唯一名称提取grp ,"grp":(.+?),"name":"UNIQUE_STRING"

正则表达式提取器 参考名称:group_name 正则

表达式:"grp":(.+?),"name":"UNIQUE_STRING" 模板:$1$ 匹配 编号:1

我想根据唯一名称提取前面的值但找不到.. 请帮忙

【问题讨论】:

  • 你能举出回复信息的例子吗?
  • "grp":11111,"name":"test_constant1","target":{"abc","id":1,"id":1,"adminUser":{"id ":2},"owner":{"text":"test","name":"TEST"},"targetSystemSource":null}}}],"grp":22222,"name":"test_constant2"这里基于第二个名称 test_constant2 我想找到对应的 grp 是 22222。它可以从 regx 后处理器中找到吗?

标签: regex jmeter


【解决方案1】:

你可以找到字符串直到第一个逗号:

Regular Expression: grp":([^,]+),"name":"UNIQUE_STRING

如果您想删除 grp 值中的 "(为 grp 查找 123":"123"),请使用:

Regular Expression: grp":"([^,]+)","name":"UNIQUE_STRING

【讨论】:

  • 这里有两个不同的grp。我想找到第二个 grp 值>> EG: "grp":11111,"name":"test_constant1","target":{"abc","id":1,"id":1,"adminUser" :{"id":2},"owner":{"text":"test","name":"TEST"},"targetSystemSource":null}}}],"grp":22222,"name" :"test_constant2",
  • 将 UNIQUE_STRING 替换为 constant2
【解决方案2】:

您的回复完全像是JSON,如果是这种情况,我相信使用JSON Extractor(自JMeter 3.0 起可用)会更容易使用)

如果您的响应数据类似于:

[
  {
    "grp": "foo",
    "name": "UNIQUE_STRING"
  },
  {
    "grp": "bar",
    "name": "ANOTHER_STRING"
  }
]

您应该能够使用简单的Json Path 查询来提取此foo 值,例如:$..[?(@.name == 'UNIQUE_STRING')].grp

演示:

更多信息:JMeter's JSON Path Extractor Plugin - Advanced Usage Scenarios

【讨论】:

    猜你喜欢
    • 2014-08-25
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 2023-02-09
    • 2018-02-23
    • 1970-01-01
    相关资源
    最近更新 更多