Jmeter json提取器仅传递默认值

问题描述 投票:0回答:1

我正在使用 JMeter 的 JSON 提取器将变量

id
从一个请求传递到另一个请求。

这是第一个请求的响应(https://reqres.in/api/users?page=2):

{
  "page": 2,
  "per_page": 6,
  "total": 12,
  "total_pages": 2,
  "data": [
    {
      "id": 7,
      "email": "[email protected]",
      "first_name": "Michael",
      "last_name": "Lawson",
      "avatar": "https://reqres.in/img/faces/7-image.jpg"
    },
    {
      "id": 8,
      "email": "[email protected]",
      "first_name": "Lindsay",
      "last_name": "Ferguson",
      "avatar": "https://reqres.in/img/faces/8-image.jpg"
    },
    {
      "id": 9,
      "email": "[email protected]",
      "first_name": "Tobias",
      "last_name": "Funke",
      "avatar": "https://reqres.in/img/faces/9-image.jpg"
    },
    {
      "id": 10,
      "email": "[email protected]",
      "first_name": "Byron",
      "last_name": "Fields",
      "avatar": "https://reqres.in/img/faces/10-image.jpg"
    },
    {
      "id": 11,
      "email": "[email protected]",
      "first_name": "George",
      "last_name": "Edwards",
      "avatar": "https://reqres.in/img/faces/11-image.jpg"
    },
    {
      "id": 12,
      "email": "[email protected]",
      "first_name": "Rachel",
      "last_name": "Howell",
      "avatar": "https://reqres.in/img/faces/12-image.jpg"
    }
  ],
  "support": {
    "url": "https://reqres.in/#support-heading",
    "text": "To keep ReqRes free, contributions towards server costs are appreciated!"
  }
}

在提取器中,我将变量命名为

userID
和 JSON 路径
$..id
匹配编号。 (1) 和默认值
NoIDFound
仅主要示例 我还使用了调试采样器,它没有问题地通过了 现在我在第二个请求中将变量传递为 (https://reqres.in/api/${userID})

我收到 404 Not Found 并且通过的请求是 (https://reqres.in/api/users/NoIDFound)

有人可以告诉我我做错了什么吗?

jmeter performance-testing json-extract
1个回答
0
投票

在没有看到你的测试计划的情况下很难说什么,我有一个假设,你的 JSON Extractor 可能放置不正确。有关更多信息,请参阅JMeter 范围规则用户手册章节

因此,如果您有以下设置:

enter image description here

这意味着 JSON Extractor 将在每个 Sampler 之后执行,在 HTTP 请求 1 之后,它将具有正确的预期值,而在 Debug Sampler 之后,它不会,因为 JSONPath 表达式不会匹配任何内容,您最终将得到默认值值。

因此使 JSON Extractor 成为 HTTP 请求 1 的子级

enter image description here

或者使用

调试后处理器代替调试采样器

更多信息:

如何使用 JSON 提取器进行测试

© www.soinside.com 2019 - 2024. All rights reserved.