JMeter后置处理器
JMeter 后置处理器
简介
在 JMeter 中,后置处理器(Post-Processor)是一种元素,用于在执行 Sampler(采样器)后对响应数据进行处理。后置处理器可以从 Sampler 的响应中提取信息、对数据进行解析或者执行其他定制化操作。后置处理器通常用于从响应数据中提取特定的信息,并将其存储为变量用于后续的请求或脚本逻辑。
常见的后置处理器
- JSON Extractor(Json 提取器)
- Regular Expression Extractor(正则表达式提取器)
- XPath Extractor(XPath 提取器)
添加元件步骤:
Json 提取器
JSON Extractor 是 JMeter 中的一种后置处理器,用于从 JSON 格式的响应数据中提取特定的值。当发送一个请求并收到一个 JSON 格式的响应时,可以使用 JSON Extractor 来提取其中的数据,并将其存储为 JMeter 变量,以便在后续的请求中使用。
相关参数说明:
- names of created Variable :保存的变量名。后面使用${变量名}引用,如:${code}
- JSON Path expressions:json path 表达式, 根据接口返回的 json 数据格式去定义,如:$.udf2。
- Match No.(0 for Random):匹配数字(0 代表随机,1 代表第一个,-1 代表所有)
- Compute concatenation var(suffix_ALL):是否统计所有,即将匹配到的所有值保存,名为“变量名_ALL”,使用场景需要获取的值有多个,后面需要对这一组数据进行操作。
- Default Values:找不到时默认值,一般设置为 NOT FOUND
案例:提取 Json 格式响应中的城市名称。
1. 步骤一:添加天气的 HTTP Request,添加对应的 Json 提取器,添加查看结果树和 Debug Sampler。
相关配置如下图所示:
2. 步骤二:在 Json 提取器元件中添加对应的配置,设置变量名是 city_name,编写提取城市名称的 json path 表达式$.weatherinfo.city
如下图所示:
3. 步骤三:查看结果如图所示:提取出城市名称并赋值给对应的变量名。
正则表达式提取器
正则表达式提取器(Regular Expression Extractor)是 JMeter 中一种常用的后置处理器,用于从响应数据中提取特定模式的信息。通过使用正则表达式,可以方便地从文本数据中提取所需的内容,如从 HTML、XML、JSON 或普通文本中提取特定信息。
相关参数说明:
- 引用名称(Name of created variable):请求要引用的变量名称,如填写 result_num。
- 正则表达式(Regular Expression):业务对应的正则表达式。
- 模板(Template):对应正则表达式的组号,从 1 开始;比如:$1$ 表示取 id 的值,$2$ 表示取 name 的值,也就是对应到表达式中的第几个括号
- 匹配数字(0 代表随机)(Match No. (0 for Random):0 代表随机取值,n 取第几个匹配值,-1 匹配所有;比如:取 1 表示报文中的第 1 个对象匹配,取 2 表示报文中的第 2 个对象匹配。
- 缺省值(Default Value):如果参数没有取得到值,那默认给一个值。
案例:通过正则表达式提取器提取百度首页标签为 title 中的值,将其赋值给变量保存。
1. 步骤一:添加百度的 HTTP Request,添加对应的 正则表达式提取器,添加查看结果树和 Debug Sampler。
相关配置如下图所示:
2. 步骤二:在 正则表达式提取器元件中添加对应的配置,设置变量名为 title_ex,编写提取内容的正则表达式<title>(.+?)</title>
,设置对应的模板
如下图所示:
3. 步骤三:查看结果如图所示:提取出 title 标签包含的内容并赋值给对应的变量名。
XPath 提取器
XPath 提取器(XPath Extractor)是 JMeter 中的一种后置处理器,用于从 XML 或 HTML 类型的响应数据中提取特定内容。XPath 是一种用于在 XML 或 HTML 文档中导航和选择节点的语言,XPath 提取器允许使用 XPath 表达式来确定需要提取的数据位置,并将其存储为 JMeter 变量以供后续请求使用。
相关参数说明:
- 引用名称(Name of created variables):请求要引用的变量名称,如填写 result_num。
- XPath query:用于提取值的 XPath 表达式。
- 匹配数字(0 代表随机)(Match No. (0 for Random)):0 代表随机取值,n 取第几个匹配值,-1 匹配所有;比如:取 1 表示报文中的第 1 个对象匹配,取 2 表示报文中的第 2 个对象匹配。
- 缺省值(Default Value):如果参数没有取得到值,那默认给一个值。
案例:通过 XPath 提取器提取百度首页标签为 title 中的值,将其赋值给变量保存。
1. 步骤一:添加百度的 HTTP Request,添加对应的 XPath 提取器,添加查看结果树和 Debug Sampler。
相关配置如下图所示:
2. 步骤二:在 XPath 提取器元件中添加对应的配置,设置变量名为 title,编写提取内容的 XPath 表达式//title
如下图所示:
3. 步骤三:查看结果如图所示:提取出对应内容并赋值给对应的变量名。
总结
- JMeter 后置处理器简介
- 常见的后置处理器的使用