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) 进行操作

 

猜你喜欢

转载自www.cnblogs.com/Arlene729/p/12188063.html