前言
在jmeter中提供了两种处理器,用于修改请求数据或处理响应数据。

- 前置处理器
- 后置处理器
前置处理器
前置处理器是在请求发送前做相关处理。可以用于在请求发送前修改HTTP协议头、数据部分等等各种需要修改或设置的数据。
其作用范围内的每一个sampler元件之前执行。

- Bean Shell PreProcessor
- HTML链接解析器
- HTTP URL重写修饰符
- JDBC PreProcessor
- jp@gc - Raw Data Source PreProcessor
- JSR223 PreProcessor
- RegEx User Parameters
- Sample Timeout
- 用户参数
注: 一般情况下,大家在实践过程中,用到前置处理器的机会比较少,这里就不一一说明了,重点放在后置处理器的讲解上。
后置处理器
后置处理器是取样器被执行后被触发执行的元素。可用于解析响应数据,提取变量,以便后续使用。

注: json格式的支持需要安装json plugins创建
下面我们对常用的后置处理器进行说明:
- JSON Extractor

用于处理响应结果为json格式的内容。
Variable names : 变量名称,提取到的值将存放在该变量里,后续通过该变量即可引用提取到的数据
JSONPath Expression:JSON表达式
Match Numbers:匹配哪个,可为空即默认第一个
Default Value:未取到值的时候默认值
示例
- jp@gc - JSON Path Extractor
用于处理响应结果为json格式的内容。
Destination Variable Name: 变量名称,提取到的值将存放在该变量里,后续通过该变量即可引用提取到的数据
JSONPath Expression:JSON表达式
Default Value:未取到值的时候默认值
具体示例请参见JSON Extractor的示例。这里不做详细示例了。 - XPath Extractor
用于处理响应结果为xml格式的内容。
这里对关键参数进行说明:
引用名称:变量名称,提取到的值将存放在该变量里,后续通过该变量即可引用提取到的数据
XPath query:xpath表达式
缺省值:未取到值的时候默认值
示例
- 正则表达式提取器
这是万能的提取模式了,支持使用正则表达式来提取满足要求的数据。当然你得熟练掌握正则表达式相关知识,才能游刃有余的应用。
引用名称:变量名称,提取到的值将存放在该变量里,后续通过该变量即可引用提取到的数据
正则表达式:用于匹配目标数据的正则表达式
模板:表示使用提取到的第几个值
$-1$:表示取所有值
$0$:表示随机取值
$1$:表示取第1个
$2$:表示取第二个
以此类推:$n$:表示取第n个
匹配数字(0代表随机): 0 代表随机取值,1 代表全部取值
缺省值: 如果正则表达式没有搜找到值,则使用此缺省值
具体的示例这里就不列举了,大家自己去尝试。
总结
本次主要就后置处理器中常用的json、xml及正则表达式处理器进行了分享。在日常测试过程中,这三种后置处理器是必须掌握的,需要深入掌握理解,同时需要对json、xpath、和正则表达式相关知识有所掌握才行。
















