Jmeter正则表达式提取器
一个Jmter常用的后置处理器
简单介绍
添加方式:Jmeter线程组,右键——> 后置处理器 ——> 正则表达式提取器
作用:提取前一个请求返回结果中的相应信息,给后续请求使用
Apply to部分:
- Main Sample and sub-sample: 作用于父节点取样器及对应的子节点取样器
- Main sample only:仅作用于父节点的取样器
- Sub-samples only:仅作用于子节点的取样器
- Jmeter Variable:作用于Jmeter变量
要检查的响应字段部分:
主体:响应报文的主体
Body(unescaped):主体,响应的主体内容且替换了所有的html转义符
Body as a Document:从不同类型的文件中提取文本
信息头:响应信息头
Request Headers:请求信息头
URL:统一资源定位符
响应代码:http code,200,404,500等
响应信息:响应信息
引用名称:Jmeter变量名称,用来保存正则提取的结果,传给下个请求用
正则表达式:正则表达式
模板:从匹配结果中创建一个字符串,意思是提取到某一组值(正则结果可能是有几个组,g0,g1,g2…),
$0$
,表示提取g0组的结果;$1$
表示提取g1组的结果;同时支持提取多组值:$0$$1$
同时提取g0,g1组结果,并且拼接成一个变量值。匹配数字:匹配某一组值的第几个值,0表示随机,1表示提取第一个值,2表示提取第二个值;
缺省值:匹配失败的默认值,常用于后续逻辑判断,例如:ERROR
示例
有两个接口,第一个接口是登录,第二个接口使用第一个接口返回信息中的id
登录接口返回信息:
1 | { |
使用工具测试,"Id":"(.+?)"
提取出的结果为:
0 | 1 |
---|---|
“Id”:”S010010” | S010010 |
“Id”:”S010020” | S010020 |
“Id”:”S010030” | S010030 |
“Id”:”S010040” | S010040 |
“Id”:”S010050” | S010050 |
“Id”:”S010060” | S010060 |
“Id”:”S010070” | S010070 |
1
添加正则表达式提取器,配置内容:
1 | 应用名称:id |
配置项组合结果为:提取第0组结果的第一个值,也就是"Id":"S010010"
;运行查看结果,结果显示id提取值为:"Id":"S010010"
;符合预期。
2
添加正则表达式提取器,配置内容:
1 | 应用名称:id |
配置项组合结果为:提取第1组结果的第2个值,也就是S010020
;运行查看结果,结果显示id提取值为:S010020
;符合预期。
3
添加正则表达式提取器,配置内容:
1 | 应用名称:id |
配置项组合结果为:提取第1组和第0组拼接成的结果的第4个值,也就是S010030"Id":"S010030"
;运行查看结果,结果显示id提取值为:S010030"Id":"S010030"
;符合预期。
以上,完~