接上一篇文章 Jmeter接口测试的使用及用户定义的变量进行参数化关联:https://blog.csdn.net/dhfaksljdfksajdnks/article/details/108456773
正则表达式提取器
应用场景:上一接口请求回来的参数下一个接口需要用到某一个参数 比如页面展示列表 点击某个列表查看详情,这时我们就需要用到 正则表达式提取器了。因为查看详情需要用到点击该列表的 id
在HTTP请求上面右键:添加--后置处理器--正则表达式提取器
正则表达式 详情页面展示:
Apply to:应用范围
Main sample and sub_samples: 匹配范围包括当前父取样器并覆盖至子取样器
Main sample only:匹配范围是当前父取样器
sub-samples only: 仅匹配子取样器
Jmeter Variable:支持对Jmeter变量值进行匹配
要检查的响应字段:样本数据来源
主体:响应数据的主体部分,排除Header部分;http协议返回请求的主体部分就是Body
Body(unescapad):针对替换了转移码的Body部分。
Body as a Document:返回内容作为一个文档进行匹配。
信息头:只匹配信息头部分内容。
URL:只匹配URL链接。
响应代码:匹配响应代码,比如Http协议返回码200代表成功。
响应信息:匹配响应信息,比如处理成功返回“成功”字样。
引用名称:根据自己的风格随便填写,在后面引用需要用到
正则表达式:这里填写需要匹配的内容 一般用(.+?)都能满足 意思是“.”匹配任意元素;“+”指前面的"."匹配任意元素的次数是一次或多次;“?”则是标识前面匹配上最小长度值。如果有别的需求自行百度一下吧
模板:比如有多个值 提取到第几个值
$-1$:表示取所有匹配模板值
$0$:表示随机取匹配模板值
$1$:表示取第一个匹配模板值
$2$:表示取第二个匹配模板值
$n$:n表示正整数,提取第n个匹配模板值。
匹配数字:0便是随机取;-1表示取所有;正数表示对应取第一个匹配到的值
缺省值:缺省值相当于默认值;当未匹配到数据时,缺省值就是引用变量的值。
这里我用百度的接口测试一下取返回结果的这个值(html格式)
提取器页面的详细配置,字段说明在上面已经描述过了
注意引用的字段,上面提取器引用名称填写的什么这里就引用什么
查看第二个接口的返回结果,也就是在上一个接口提取的几个字
有人会有疑问,返回的是html的这样提取,那返回为json 格式的怎么提取呢,下面就说一下json格式的怎么提取
比如我想提取这个字段
那么提取器的表达式这样写 也就是将菜谱大全返回的imtro参数提取出来
供下一个百度搜索的接口使用 引用方式及结果
以上就是正则表达式提取器的使用,如果有什么不对请提出宝贵的建议,会及时改正,感谢