JMeter将JSON响应值传递给下一个请求

时间:2018-11-30 15:58:48

标签: testing jmeter http-request-parameters json-extract

我正在使用JMETER来测试Web应用。

首先,我执行一个http GET请求,该请求返回一个JSON数组,例如:

[
  {
    "key1": 
    {
      "subKey": 
      [
        9.120968,
        39.255417
      ]
    },
    key2 : 1

  },
  {
    "key1": 
    {
      "subKey": 
      [
        9.123852,
        39.243237
      ]
    },
    key2 : 10
  }

]

基本上,我想随机获取一个元素,获取key1的元素,并在JMeter中创建2个变量,这些变量将用于下一个查询(如果是随机的,则不仅仅是第一个元素)。 / p>

我尝试将JSON Extractor用于以下设置(该示例显示了单个变量的情况):

enter image description here

,并在下一个http GET请求中,将参数引用为${var1}

如何设置JSON Extractor来提取值,并保存到JMeter变量中以在下一个http GET请求中使用?

2 个答案:

答案 0 :(得分:1)

在此打开的“要使用的JMeter变量名”选项意味着您将要检查Sample结果中该变量INSTEAD的内容。

因此,解决方法很明显:如果您打算从Sample结果中提取任何内容,请将其更改回它。

PS如果您打算相反(处理可变内容,而不是样本结果)-请让我知道。

答案 1 :(得分:1)

  1. 正确的JSON路径查询将类似于:

    $..key1.subKey[${__Random(0,1,)}]
    
  2. 您需要将Apply to的值切换为Main sample onlyMain sample and sub-samples

    enter image description here

在上述设置中:

  • 匹配号:0-告诉JMeter从key1子键中获取随机值
  • ${__Random(0,1,)}-从数组中获取随机元素,即9.12096839.255417

更多信息: