Jmeter 后置处理器之json提取器

Posted arlene729

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter 后置处理器之json提取器相关的知识,希望对你有一定的参考价值。

 

技术图片

 

Apply to(应用范围):
        Main sample and sub-samples:应用于主sample及子sample
       Main sample only:默认的是这个,应用于主sample
       Sub-samples only:应用于子sample
      JMeter Variable :应用于变量命名的内容

Variable names:参数名, 可自定义名称
JSON Path expression:json表达式    以 " $. " 开头 
Match Numbers:匹配第几个值,不填写默认获取符合条件的第一个, 0为随机、N为获取第N个、-1获取所有(匹配项是-1 且匹配结果有多个值时,会通过逗号将多个值拼接,可以通过  参数名_ALL 的方式进行调用)技术图片

Compute comcatemation var(suffix_ALL):勾选此项后,匹配到多个结果时,插件将使用“,”分隔符将它们连接起来,并将其存储在名为<Variable names>_ALL的var中 (需配合Match Numbers:-1 使用哦)
Default Values:当没有获取到参数值时的默认值

我们可以通过 JSON Path Expression进行测试 我们的json表达式是否正常,是否匹配到想要的值

在查看结果树中 选择JSON Path Tester  选择右侧的JSON Path Tester 然后在底下JSON Path Expression输入表达式进行匹配测试

技术图片

  

 那么,我们来看下面这个json串进行实战练习吧~

技术图片

 

获得第一层msg的value值

技术图片

 

 获得第三层中custName的value值

技术图片

 

获取addressList中的第一个省份

技术图片

 

 获取addressList中的所有省份

 技术图片

 

 获取contactList中的 contactName=张庆的联系号码

技术图片

value值为字符串时需加引号,非字符串时可不加引号 如:?(@.main==true)

 

获取多个key的value值

技术图片

 

 获得key的前N个value值

如 获取前2个contactName值

技术图片

 

 获取key的第N个之后的所有value值

技术图片

 

最后小结

Match Numbers 0为随机、N为获取第N个、-1获取所有

Compute comcatemation var(suffix_ALL):配合Match Numbers= -1  可将多个value值通过逗号 拼接成一起,通过 参数名_ALL 进行调用

json表达式 如下 $.key1.key2

碰到list需要通过[]去获得里面的key值,[0]获得第一个,以此类推,[*] 获得全部;   [:3]获取前三个;  [2:]获取第二个之后的所有(同理可得[0:]也能获得全部)

需要获得特定条件下的value值 可通过  ?(@.main==true) 进行操作

 

技术图片

 

以上是关于Jmeter 后置处理器之json提取器的主要内容,如果未能解决你的问题,请参考以下文章

jmeter——后置处理器_JSON提取器

jmeter后置处理器--json提取器

jmeter之 json提取器

Jmeter之BeansShell之处理逻辑关系

Jmeter之JSON提取器

JMeter之边界值提取器