jmeter JSON提取器JSON PATH语法

JSON提取器
JSON提取器是专门用来对返回的响应结果是application/json格式的报文进行提取
响应:
jmeter JSON提取器JSON PATH语法_第1张图片
在这里插入图片描述

添加路径:
jmeter JSON提取器JSON PATH语法_第2张图片
JSON提取器,变量应用范围,默认选择Main sample only即可
jmeter JSON提取器JSON PATH语法_第3张图片
变量路径的语法规则可以参考下面的:JSON PATH语法如下列表,具体语法使用规则,还需要大家多多尝试,可以在察看结果树中切换成JSON Path Tester模式进行测试。

怎么写JSON PATH,只有写出正确的JSON PATH,才能获取到我们需要的变量值,默认我们jmeter的察看结果树显示的结果是Text文本格式,这样我们就不能快速的看出变量的层级,所以需要把查看结果树的显示格式改成JSON Path Tester,该查看结果树还支持直接对结果进行调试
jmeter JSON提取器JSON PATH语法_第4张图片
假如想获取第一个list里面的id
jmeter JSON提取器JSON PATH语法_第5张图片
表达式:$…list[0].list[0].id

实际工作中,可能返回的查询结果经常会变化,这时候如果在写死数组索引的位置,比如上面给大家介绍的,写成 . . l i s t [ 0 ] . l i s t [ 0 ] . i d , 如 果 系 统 新 增 了 项 目 , 可 能 就 会 导 致 取 的 值 不 正 确 , 这 时 候 就 需 要 用 到 另 外 一 种 取 值 方 式 , ..list[0].list[0].id,如果系统新增了项目,可能就会导致取的值不正确,这时候就需要用到另外一种取值方式, ..list[0].list[0].id…list[?(@.carTypeName==“小面包”)].id,该json path可以通过一个变量定位到自己所在的数组的索引,然后在去取需要的id,比如carTypeName这个值是唯一值,就可以通过该值取到需要的值,语法如下$…然后后面跟数组名称,本文为list,然后跟[?(@.carTypeName==“小面包”)],其中carTypeName是序列中的一个唯一值,可以根据需要修改,“小面包"是carTypeName实际为什么值就填什么,最后在加”."后面跟你需要取的字段名如id,pah都行,只要在这个数组中存在

一步步调试
jmeter JSON提取器JSON PATH语法_第6张图片
jmeter JSON提取器JSON PATH语法_第7张图片

这样就算以后排序了也可得到固定的值。
jmeter JSON提取器JSON PATH语法_第8张图片

JSON PATH语法如下列表
jmeter JSON提取器JSON PATH语法_第9张图片

JSON怎么通过一个提取器提取多个变量,多个变量时则每个变量用“;”间隔开,正则表达式、匹配序列、默认值也一样,需要用“;”隔开,下面先介绍当正则表达式取固定的序列的时候,填写的规则如下图
jmeter JSON提取器JSON PATH语法_第10张图片

当表达式取任意序列时(匹配所有符合的值),填写规则如下图
jmeter JSON提取器JSON PATH语法_第11张图片

返回结果为application/json格式的都用json path取值,不用正则

正则表达式,具体语法使用规则参考https://www.runoob.com/regexp/regexp-syntax.html

参考:https://www.cnblogs.com/Jmeter-Automation/p/12730661.html

你可能感兴趣的:(笔记)