【问题标题】:JMeter pass JSON response value to next requestJMeter 将 JSON 响应值传递给下一个请求
【发布时间】:2018-11-30 15:58:48
【问题描述】:

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

首先我执行一个 http GET 请求,它返回一个 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请求中使用?

【问题讨论】:

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


    【解决方案1】:
    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

    更多信息:

    【讨论】:

    • 抱歉,我的问题可能不够清楚。我想从最外部的数组中选择一个随机元素,使其看起来像 { "key1": { "subKey": [ 9.120968, 39.255417 ] }, key2 : 1 . } 并从这里提取 subKey 中的两个值
    • 那就只找$..key1.subKey
    • 我保留了 0 来提取随机元素,这似乎是正确的。
    【解决方案2】:

    “要使用的 JMeter 变量名”选项在此处打开意味着您将检查此变量的内容而不是示例结果。

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

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

    【讨论】:

      猜你喜欢
      • 2018-06-22
      • 2022-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多