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

JMeter pass JSON response value to next request

我正在使用 JMETER 测试网络应用程序。

首先,我执行一个 http GET 请求,其中 returns 一个 JSON 数组,例如:

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

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

]

基本上我想随机取一个元素,取 key1 的元素并在 JMeter 中创建 2 个变量,将用于下一个查询(如果随机,则不可能只取第一个元素) .

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

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

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

"JMeter variable name to use" 您在此处打开的选项意味着您将检查此变量的内容,而不是示例结果。

所以修复很明显:如果您打算提取从示例结果中提取的任何内容 - 将其改回原样。

PS 如果您打算相反(处理变量内容,而不是示例结果)-请告诉我。

  1. 正确的JSON路径查询应该是这样的:

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

在上面的设置中:

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

更多信息: