1.添加 JSON 提取器
右击http请求 > 添加 > 后置处理器 > json提取器
2.页面功能介绍
apply to(适用于或者作用范围)
Main sample and sub-samples:作用于主节点的取样器及对应子节点的取样器
Main sample only:仅当前父取样器
Sub-samples only:仅子取样器
jmeter Variable Name to use:作用于jmeter变量,从指定变量值中提取需要的值。
Names of created variables: 提取结果后赋值的变量名
JSON Path expressions: json 表达式
Match No. (0 for Random): 匹配编号,-1为匹配所有,0为随机,其他则从1开始获取
Compute concatenation var (sufx. ALL): 如果匹配到多个结果,将使用’ , ‘分隔符将它们连接起来,命名为“变量名_ALL”,如:id_ALL=13,14,15,16
Default Values: 默认值
json表达式写法:
json提取器用于提取接口请求返回结果中的某个值或者某一组值,标准写法为$.key,其中的key为返回结果json中的一个键,如果是多层则继续用.key匹配即可,如果遇到key的value值为一个list,则使用.key[n],其中n为list中元素的位置编号,如果想匹配所有用.key[*]。
完整语法可参考:
实例:
从下面数据中提取userId的值 >
{“msg”: “操作成功!”, “code”: 0, “data”:[{“userId”: “d78a090fef454047afe31c6ec00001”,“status”:“1”},{“userId”: “d78a090fef454047afe31c6ec00002”,“status”:“1”}]}
先创建一个用户定义的变量,里面添加一个变量res,值为上面给的数据。
然后添加一个 Java 请求,为Java请求的后置处理器中添加一个json提取器,apply to选项中选择JMeter Variable Name to use,并填写res
提取单个值:
提取多个值:将data下面所有字典中的userId的值提取出来
如果是请求结果返回的数据我们还可以在查看结果树中对我们写的json表达式进行调试:
在View Result Tree中选择JSON Path Tester