Jmeter模块详解(5)后置处理器
目录
正则表达式提取器(Regular Expression Extractor)
*本文部分图片来自网络
后置处理器在取样器之后执行,后续操作的子件集合,对请求响应做一些处理,或者抓取响应数据,提取变量方便后续调用或断言等
JSON提取器(JSON Extractor)
如图要抓取接口的两个返回json值:
配置如下:
· variable names:变量名称,提取到的值存放在该变量中,后续通过该变量即可引用提取到的数据,多个变量名通过分号(;)隔开
· json path expressions:格式为 $.XX.XX.XX,$.必须要的,若有很多层级,用英文句号.隔开,多个路径通过分号(;)隔开,若为空即默认取第一个数据
· Match No.:取第几个值,0为随机,-1为全部即取数组
· Default Value:未取到值的时候默认值
· Compute concatenation var(suffix_ALL):是否统计所有,即将匹配到的所有值保存,名为“变量名_ALL”,使用场景需要获取的值有多个,后面需要对这一组数据进行操作
引用变量:
引用格式为:${变量名},加入下标可取指定行数的值,比如取第一行的值${变量名_1}
提取复杂结构的json数据:
分析这段json:
如果我要获取data{}里的orderNo怎么写呢:首先分析json提取格式是【$.】后面跟参数,OrderNo 是包在data里,data 被包在result里,所以我们一层一层的定位:$.result.data[0].orderNo
->为什么要加[0]?
首先data 下面不止一段json,可能有很多,我们现在定位的是第一段,它是数组,所以取第一个下标就是[0],如果取第二个下标就是[1]以此类推。
场景2:
# 提取所有,使用 * , -1 代表全部
引用时,使用 ${hello_1}即可
边界提取器(Boundary Extractor)
如图要抓取接口的返回值:
配置如下:
· 引用名称:变量名称,提取到的值存放在该变量中,后续通过该变量即可引用提取到的数据
· 左边界:严格填写所取值的左边界字符
· 右边界:严格填写所取值的右边界字符
· Match No.:取第几个值,0为随机,-1为全部即取数组
引用变量:
引用格式为:${变量名},加入下标可取指定行数的值,比如取第一行的值${变量名_1}
正则表达式提取器(Regular Expression Extractor)
如下需要获取登录返回头部的token:
提取器如下配置:
Match No.:取第几个值,0为随机,-1为全部即取数组
表达式中,(.*?)为锁定要提取的值的位置,cookie_token=相当于左边界,;相当于右边界。
如下获取到token值并赋给gettoken参数:
引用格式为${参数名},加入下标可取指定行数的值,比如取第一行的值${变量名_1},参考跨线程全局变量__setProperty()目录