- 以下转载自:https://blog.csdn.net/qq_36502272/article/details/88529412
- Json提取器语法调试可以参考:http://www.51testing.com/html/18/n-4461218.html
一、后置处理器—正则表达式提取器
1、添加正则表达式提取
2、正则表达式提取面板介绍:
引用名称:提取引用名称,下个请求要引用此参数名称,如填写token,下个请求中用${token}
正则表达式:():括起来的部分就是要提取的
.:匹配任何字符串
+:一次或多次
?:不要太贪婪,在找到第一个匹配项后停止
模板:用
<nobr aria-hidden="true" style="box-sizing: border-box; outline: 0px; transition: none 0s ease 0s; border: 0px; padding: 0px; margin: 0px; max-width: none; max-height: none; min-width: 0px; min-height: 0px; vertical-align: 0px; line-height: normal; text-decoration: none; white-space: nowrap !important; overflow-wrap: break-word;">引用起来,如果在正则表达式中有多个正则表达式,则可以是</mo></mrow><mn>2</mn></math>
312n$:表示取第n个
匹配数字:0代表随机取值,1代表全部取值,通常情况下填0
如果正则表达式没有搜找到值,则使用此缺省值
3、提取(单个值)登录后获取的token,作为请求头参数,用于其它接口请求使用
4、正则提取(不同字段,多个值)案例
5、正则提取(同字段,多个值)案例
提取列表接口所有id集合,使用第几个id,id_n就可以,如果想迭代所有id,再搭配foreach迭代控制器,迭代每个id
二、后置处理器—json提取器
1、添加json提取器
2、json提取器面板介绍:
Main sampleand sub-samples:应用于主sample及子sample
Main sample only:默认的是这个,应用于主sample
Sub-samples only:应用于子sample
JMeterVariableName to use:应用于变量命名的内容
Variable names : 名称
JSONPath Expression:JSON表达式
Match Numbers:0随机;n取第几个匹配值;-1匹配所有,后续引用用 变量名_N 取第N个值
Default Value:未取到值的时候默认值
$.你要提取的参数
1、响应类似{"属性":[{"sx":1},{},{}]},整个响应是个对象。取sx的值:$.属性[0].sx
2、修改json extractor 获取数组的所有值 ** $[].属性。match no=3取第3个*
3、match no=5,数组越界后,取default values
4、修改json extractor 设置match no =-1 匹配对应字段所有值;并修改接收参数的http请求的参数为 ${varname_N}。N=1-4
我想提取code参数值:
JSON Path Extractor:$.code
提取username参数值:
JSON Path Extractor:$.list[0].username
如果提取的参数不存在父级?
$.你要提取的参数名
提取的参数存在父级
$.你要提取的参数名的父亲.你要提取的参数名
如果提取参数的父级存在父级
$.你要提取的参数名的父亲的父亲(爷爷).你要提取的参数名的父亲.你要提取的参数名
参数如果是数组?
$.你要提取的参数参数[N]
****以下标的形式取值,0代表取的数组中第一个值,1代表取的是数组中第二个值,N代表取的数组中第N+1个值****
3、提取(单个值)登录后获取的token,作为请求头参数,用于其它接口请求使用
4、json提取器,提取(不同字段,多个值)案例
5、json提取器,提取(同字段,多个值)案例
JSONPath Expression $.data.list[*].id
Match Numbers -1
提取列表接口所有id集合,使用第几个id,id_n就可以,如果想迭代所有id,再搭配foreach迭代控制器,迭代每个id