如何在 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 提取器而不是正则表达式提取器
json 表达式:$..Name
匹配大小写为 1
边界提取器
左边界:: "名称" : "
右边界:: ",
JSON is not a regular language 因此使用正则表达式不是继续的最佳选择,JMeter 提供以下 post-processors 更方便:
例如 JMESPath 提取名称和 ID 的表达式类似于:
"result Obj".List[*].[Name,Id]
Since JMeter 3.1 it's recommended to use JSR223 Elements and Groovy language for scripting so consider migrating to JSR223 Assertion
我得到 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 提取器而不是正则表达式提取器
json 表达式:$..Name 匹配大小写为 1
边界提取器
左边界:: "名称" : "
右边界:: ",
JSON is not a regular language 因此使用正则表达式不是继续的最佳选择,JMeter 提供以下 post-processors 更方便:
例如 JMESPath 提取名称和 ID 的表达式类似于:
"result Obj".List[*].[Name,Id]
Since JMeter 3.1 it's recommended to use JSR223 Elements and Groovy language for scripting so consider migrating to JSR223 Assertion