不管是进行结果断言,还是接口与接口之间的参数传递,都需要获取接口响应中的对应值。
在Jmeter中常用的这两种方式,基本上能满足大部分的需要。
至少能满足现阶段我的需要了。
1
正则表达式提取器
打开Jmeter,在http请求下添加后置处理器--正则表达式提取器。(简单记下-处理请求后的数据,所以在后置处理器中添加正则提取器)
看一眼“正则提取器”界面。
默认选中的两个值可以不用去修改,如果你有其他需求除外。
引用名称:把提取的值作为一个变量存在Jmeter中,所以得为这个值取个名。引用方式$。
正则表达式:记得这几个符号(.+?),关于它的含义可参考下图
模板:创建一个从匹配结果中取到的值,也可以是多个。一个匹配结果写成$1$,如果一个正则中需要取到多个值需要写成$1$$2$...$n$
匹配数字:把正则取到的值看成一个数组。0表示随机,1表示第一个值,以此类推。为负数...表示没用过,传说是提取所有符合条件的值。
缺省值:当匹配不到值时,显示该预设默认值。
2
JSON Extractor
通常接口传回数据为Json格式时,使用此方式是最简单的。
同样在HTTP请求中添加一个后置处理器--Json Extractor。如果你的后置处理器中没有,建议你升级下Jmeter或者自己找找相关插件吧。
Json Extractor 是通过JsonPath来进行提取想要的值。
简单说明下面几个框:
Variable names:同“正则提取器”变量名称
Json path expressions:使用JsonPath来进行提取值。以$.开头填入你想要获取的key的路径。(具体可学习下JsonPath)
Match No. :同“正则提取器”匹配数字
Default Values:默认值
3
举个栗子
响应数据:
{
"ret": 0,
"msg": "ok",
"data": [{
"nick_name": "CQMYG",
"signature": "CQMYG",
"hd_head_img": "",
"pkey": "Mj123HshnyMQ==",
"source": "mp.weixin.qq.com",
"user_name": "Dbs",
"alias": "Dbs",
"biz": "Mj123HshnyMQ==",
"nickname_simple": "CQMYG",
"disabled": 1,
"attention_status": 0
}],
"oldApi": ""
}
正则表达式提取器:
提取pkey:"pkey":"(.+?)"
提取disabled:"disabled":(.+?),
Json Extractor:
提取pkey:$.data.pkey 或者 $..pkey
提取disabled:$.data.disabled 或者 $..disabled
(Chrome浏览器可在响应中找到该key值,鼠标指向查看路径或右键点击copy property path即可粘贴使用)
对应如何在接口之间传递值的问题,东西都拿到手了,该怎么用就不需要多说了吧。
▼
学无止境,多学一点,也是进步
▼
领取专属 10元无门槛券
私享最新 技术干货