用jmeter做接口测试常遇到一种情况,上个请求的响应信息会作为下个请求的请求参数,这时我们会把上个响应信息提取出来,给下个请求入参,就会经常使用到正则提取和json提取,接下来我们分别看看两种后者处理器的用法。
一、正则提取器
在HTTP请求下添加后置提取器,如下图
先看一下,我们需要提取的响应信息,在察看结果树里面
我们需要这个token值作为下个请求的参数
引用名称:下一个请求要引用的参数名称,如填写token,则可用
t
o
k
e
n
引
用
它
。
正
则
表
达
式
:
(
)
:
括
起
来
的
部
分
就
是
要
提
取
的
。
.
:
匹
配
任
何
字
符
串
。
+
:
一
次
或
多
次
。
?
:
在
找
到
第
一
个
匹
配
项
后
停
止
。
模
板
:
用
{token}引用它。 正则表达式: ():括起来的部分就是要提取的。 .:匹配任何字符串。 +:一次或多次。 ?:在找到第一个匹配项后停止。 模板:用
token引用它。正则表达式: ():括起来的部分就是要提取的。 .:匹配任何字符串。 +:一次或多次。 ?:在找到第一个匹配项后停止。模板:用$引用起来,如果在正则表达式中有多个正则表达式,则可以是
2
2
2
3
3
3等等,表示解析到的第几个值给title。如:
1
1
1表示解析到的第1个值
匹配数字:0代表随机取值,1代表全部取值
缺省值:如果参数没有取得到值,那默认给一个值让它取,我填的aaa。
通过F12或者fiddler抓包知道,下个请求是在请求头使用这个参数,所以在请求下加个HTTP信息头管理器,如图
值看请求的格式,通过抓包我们了解到,对应的填入就ok啦
最后看看下个请求是不是使用的这个参数呢,传参成功了!!!
二、json 提取器
json提取器的原理和正则是一样的,都是为了获取上个请求的响应信息,给下个请求提供参数。在http请求里添加后置处理器json extractor
Variable names : 变量名称
JSONPath Expression:JSON表达式 格式:$.data.token。如果响应data为数组,故应为 $.data[0].token 提取第1个值,data[*]表示取全部值
Match Numbers:可为空即默认第一个 ,-1即所有值
Default Value:未取到值的时候默认值
然后把参数加入到下个请求参数里
总结
同时用正则提取器和json 提取器,提取token值,发现json更加准确,只返回了一条数据。当然小伙伴们可以根据自身的项目来判断使用哪一种方面。
正则提取器和json extractor的用法
最新推荐文章于 2024-08-28 16:37:40 发布