如何在 jmeter 中使用正则表达式提取器从响应数据中提取数据

How do I use regular expression extractor in jmeter to extract a data from response data

我得到 api 响应数据作为

{"result code":"OK",
"result Obj":{
     "List": [
       {
           "Id" :123,
           "Name" : "abc",
            "Ran" : 345
        },
        {
           "Id" :987,
           "Name" : "poi",
            "Ran" : 657
        }
      ]
}
}

我想使用正则表达式提取器从响应中提取名称变量数据(有 n 个这样的名称未固定)以便我可以在 beanshell 断言中使用它以便稍后进行比较。

能否请您展示如何使用正则表达式提取器为此分别提取 name 变量和 id 变量,以及稍后如何使用该变量。

我尝试将“名称”:“(.*?)”作为正则表达式和模板 $0$,但它无法正常工作

我建议使用 json 提取器而不是正则表达式提取器

  1. json 表达式:$..Name 匹配大小写为 1

  2. 边界提取器

左边界:: "名称" : "

右边界:: ",

  1. JSON is not a regular language 因此使用正则表达式不是继续的最佳选择,JMeter 提供以下 post-processors 更方便:

    例如 JMESPath 提取名称和 ID 的表达式类似于:

     "result Obj".List[*].[Name,Id]
    

  2. Since JMeter 3.1 it's recommended to use JSR223 Elements and Groovy language for scripting so consider migrating to JSR223 Assertion