关于jmeter中的正则表达式及json提取器可以提取响应值,大家都有所了解,但是往往我们在实际运用中,可能需要上个接口的多个响应值,难道我们要在jmeter中添加多个提取器吗?那么我们今天来了解下如何使用json提取器一次性提取多个参数值。

json提取器提取多个值

java 两个json是否相等 两个json合并_c#如何将多个json合并

以上是响应数据,我需要把这两个参数都提取出来传给下一个接口的请求,添加json提取器

java 两个json是否相等 两个json合并_数组_02

关于json提取器参数介绍:

  •  names of created variables :接收值的变量名,多个变量时用分号分隔
  •  json path:json path表达式,也是用分号分隔
  •  match no:0随机;n取第几个匹配值;-1匹配所有,后续引用用 变量名_N 取第N个值。
  •  default values:缺省值,匹配不到值的时候取该值

以上我们可以看出变量之间,表达式之间,缺省值之间均以分号隔开,这样在分别传给下一个接口即可!

java 两个json是否相等 两个json合并_取值_03

查看请求数据是否是上个接口的返回值:

java 两个json是否相等 两个json合并_数组_04

如果我们需要匹配数组中对多个参数,应当如何提取呢?

java 两个json是否相等 两个json合并_json_05

如果说我们要提取接口中的所有id,然后根据自己所需要的情况传给下一个接口呢,我们可以先进行jsonpath进行调试:

java 两个json是否相等 两个json合并_取值_06

以上可看到jsonpath表达式为$.data[*].id,获取相应数据的data中的所有id,然后我们再根据自己需要传给下个接口对应需要的第几个id:

java 两个json是否相等 两个json合并_取值_07

假设我们需要数组中第二个帖子的id,那么下个接口的入参我们可以写成如下

java 两个json是否相等 两个json合并_取值_08

${id_2}代表第二个,${id_1}则代表第一个,根据下标来取值,同理我们需要数组中不同参数的不同值则可以结合上面多个参数取值的方式,json提取器可以这样写:

java 两个json是否相等 两个json合并_java 两个json是否相等_09

以上则是如何使用json提取器提取多个参数,传给下一个接口的方式,更灵活的进行了参数关联!有关json提取器中的jsonpath语法,可参照一下往期文章先行了解运用!