Jemeter工具获取响应中字段的值

接口测试过程中,下一个请求经常会用到上一个请求响应的结果,这就是Jemeter的参数关联。

例如获取第一个id的内容:

{"code":1,"data":{"result":[{"id":"473118d35d6443c2801405a85a7c42b31529456531266","serialNumber":"473118d35d6443c2801405a85a7c42b31529456531266","title":"农技百科test","classes":"农副加工_粮油","content":"<p>农技百科test</p><p>农技百科test</p><p>农技百科test</p><p>农技百科test</p><p>农技百科test</p>","updateDate":"2018-06-20","upodateDateTime":"2018-06-20 09:02:11","state":1},{"id":"3027219d444f49c0bb58e136d89b4f951528965932568","serialNumber":"3027219d444f49c0bb58e136d89b4f951528965932568","title":"农技百科test","classes":"农副加工_粮油","content":"农技百科test农技百科test农技百科test农技百科test农技百科test","updateDate":"2018-06-14","upodateDateTime":"2018-06-14 04:45:32","state":1},{"id":"080ed01dddb04f5b995ae387617be2991528965872584","serialNumber":"080ed01dddb04f5b995ae387617be2991528965872584","title":"农技百科test","classes":"农副加工_粮油","content":"农技百科test农技百科test农技百科test农技百科test农技百科test","updateDate":"2018-06-14","upodateDateTime":"2018-06-14 04:44:32","state":1}],"totalNum":3,"pageSize":8}}

方法一:JSON Extractor:这个需要安装插件

在需要获取结果的请求上右键选择 《添加-后置处理器-JSON Extractor》


JSON Extractor参数介绍:


Names of created variables:获取的变量名称,后面引用该参数时,使用${id_1}

JSON Path expressions:获取响应中字段的表达式,data是字典,result是个List,获取第一个id的表达式为$.data.result[0].id

Match No.(0 for Random):匹配哪个,可为空即默认第一个 
Default Value:未取到值的时候默认值

方法二:

Regular Expression Extractor :正则表达式提取


参数介绍:


Apply to,作用域,主要作用在于是否作用在sub-sampler

Field to check:分的很细,意思是你打算去哪里取值

Reference Name,变量名,取值后存储的对象名,可以用作${变量名},另外${变量名}_g#,#代表第几组,g0表示完全匹配,包含整个字符串,g1代表从第对括号开始匹配,g2表示第二对括号开始的匹配

Regular Expression: 正则表达式

Template: $1$指向group 1,即匹配第一个正则表达式括号内的内容,依次类推

            (关联值的取值模板。取值模板以$1$表达正则表达式中第一个待匹配的内容(也就是正则表达式中第一个括号对内的匹配部分),以$2$表示第二代待匹配的内容,以此类推。参数可以在取值模板中组合使用,例如,已“$1$-$2$”作为模板得到的值是使用“-”链接的第一个待匹配的内容与第二个待匹配的内容组合而成的字符串。

Match No: 选择第几次匹配到的值,有可能一个Sampler下面匹配到多个值,这时这个变量就可以用到,0代表随机取,可以用在每次取到的值是一样的情况下

             (指示正则表达式在指定的检查范围内多次匹配成功(得到多个匹配值),使用第几个被匹配的值作为参数的取值。0表示随机从所有匹配的数据中选取;正数n表示取第n个匹配值;取负数则表示要提取所有符合条件的匹配值。当Match No.取负数时,JMeter会自动生成以下参数存放匹配值数据(RefName为Reference Name中指定的参数名称)

Default Value: 如果没有匹配到的默认值,建议设置,可以快速定位问题


可以通过添加Debug PostProcessor来跟踪查看下取值的结果:



可以查看到

猜你喜欢

转载自blog.csdn.net/songruibb/article/details/80694765