Jmeter学习:后置处理器--正则表达式提取器/JSON 提取器/边界提取器/JMESPath 提取器
一、正则表达式提取器
功能:通过该组件,我们可以通过正则表达式提取所需要的值,功能非常强大
请务必了解 Java 正则表达式的常见用法(匹配模式、组概念),参考:https://www.runoob.com/java/java-regular-expressions.html
假如采样器返回如下报文:
{"total":2,"list":[{"id":"1634020364206","name":"普通文本","code":"span0"},{"id":"1635186324896","name":"文本域","code":"textarea1"}]}
![](https://img2023.cnblogs.com/blog/1290905/202301/1290905-20230114111919094-1418890243.png)
1、定义 Jmeter 变量名称
2、业务对应的正则表达式
3、对应正则表达式的组号,从 1 开始,上述$1$表示取 id 的值;$2$表示取 name 的值,也就是对应到表达式中的第几个括号;$0$表示取整个正则表达式的值,此处结果为"id":"1635186324896","name":"文本域"
4、对应正则表达式匹配的次数,像上述就是 2 次,取 1 表示报文中的第 1 个对象匹配,取 2 表示报文中的第 2 个对象匹配,取 0 表示随机获取报文中的匹配对象。
注意:此处可以填 -1 次,会将所有匹配对象按照 “变量名_n” 的形式存储,即,userParam_1, userParam_2。后面所有提取器该参数效果一样。
5、Default Value: 正则匹配为空时的默认值,或者保持为空。
二、JSON 提取器
功能:通过该组件,我们可以通过 JsonPath 提取所需要的值,功能非常强大(注意采样器返回必须为 Json)
采样器返回:
{"total":2,"list":[{"id":"1634020364206","name":"普通文本","code":"span0"},{"id":"1635186324896","name":"文本域","code":"textarea1"}]}
![](https://img2023.cnblogs.com/blog/1290905/202301/1290905-20230114172912431-1803641202.png)
Compute concatenation var(suffix_ALL):将JSON Path expressions获取结果用逗号分割存在变量suffix_ALL中,可以被调用。
三、边界提取器
功能:通过该组件,我们可以通过边界匹配提取所需要的值,功能非常简单实用
采样器返回:
{"total":2,"list":[{"id":"1634020364206","name":"普通文本","code":"span0"},{"id":"1635186324896","name":"文本域","code":"textarea1"}]}
![](https://img2023.cnblogs.com/blog/1290905/202301/1290905-20230114175110200-451782008.png)
Left Boundary: 左边界
Right Boundary: 有边界
四、JMESPath 提取器
功能:通过该组件,我们可以通过 JmesPath 语法提取所需要的值,功能非常强大(注意采样器返回必须为 Json)
该提取器可被Json提取器替代,顾不做详细描述。