在jmeter中涉及到json的地方就必然要写jsonpath的表达式,英文表达为:"JSON Path expressions",可以理解为某个字段在响应的json报文中的路径,他通用的格式是:.键的名称,用一个英文的""表示json外面的大括号,然后用一个点加上键的名字表示路径,具体的可以看下面的情况分析:
响应中遇到不同的json类型如何书写jsonpath表达式
第一种:响应结果全部都是键值对格式,也就是:{key1:value1,key2:value2,key3:value3,key4:value4,key5:value5}
这种情况如果要提取value1,那么表达式就是:$.key1
第二种:响应结果是嵌套的键值对格式,也就是有好多个括号的情况:
{key1:{key2:{key3:value3,key4:value4},key5:value5}}
这种情况如果要提取value3,那么表达式就是:$.key1.key2.key3
第三种:响应结果既有嵌套又有数组,也就是既有大括号又有中括号的情况:
{key1:[{key2:value1},{key2:value2},{key2:value3}]}
这种情况如果要提取key2对应的所有值value1、value2、value3,那么表达式就是:$.key1[*].key3
其中:
[*] 表示取出数组中的所有值
[0] 表示取出数组中的第一个值
[1] 表示取出数组中的第二个值,其他的以此类推
如何验证所写的jsonpath的正确性
在查看结果树中选择"JSON Path Tester",输入表达式然后点击test,如果有返回结果证明书写正确,如果没有那就是写错了。
其他参考资料
这个也只是我个人的一个学习笔记,如果大家还是看不懂的话可以评论区留言或者参考一下其他大佬写的:
jmeter从接口返回值中提取数据的方法------后置处理器JSON Extractor_jmeter------提取返回值里的部分信息-CSDN博客