用jmeter做接口测试常遇到一种情况,上个请求的响应信息会作为下个请求的请求参数,这时我们会把上个响应信息提取出来,给下个请求入参,就会经常使用到正则提取和json提取,接下来我们分别看看两种后者处理器的用法。
一、正则提取器
在HTTP请求下添加后置提取器,如下图
先看一下,我们需要提取的响应信息,在察看结果树里面
我们需要这个token值作为下个请求的参数
引用名称:下一个请求要引用的参数名称,如填写token,则可用$引用起来,如果在正则表达式中有多个正则表达式,则可以是等等,表示解析到的第几个值给title。如:表示解析到的第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更加准确,只返回了一条数据。当然小伙伴们可以根据自身的项目来判断使用哪一种方面。