【问题标题】:Postman collection runner does not apply data to requests邮递员收集运行器不会将数据应用于请求
【发布时间】:2021-02-09 03:44:15
【问题描述】:

这听起来很基本,但我不知道邮递员在做什么;我的设置如下:

输入文件:

[
{
    "url": "http://localhost:3000/gadgets/",
    "gadget_id": "8f338a25-c52a-4c47-9d5f-69a6c48c24f2",
    "user_id": ""
},
{
    "url": "http://localhost:3000/gadgets/",
    "gadget_id": "32461687-530e-4730-86c4-00fa4c284cd9",
    "user_id": ""
},
{
    "url": "http://localhost:3000/gadgets/",
    "gadget_id": "913ab956-b89d-41a2-9c09-0a970e202440",
    "user_id": ""
},
{
    "url": "http://localhost:3000/gadgets/",
    "gadget_id": "55c30784-3ad1-4a4e-a781-51a6f0f2fa42",
    "user_id": ""
},
{
    "url": "http://localhost:3000/gadgets/",
    "gadget_id": "55c30784-3ad1-4a4e-a781-51a6f0f2fa42",
    "user_id": ""
},
{
    "url": "http://localhost:3000/gadgets/",
    "gadget_id": "",
    "user_id": "4b1c6bc3-d44d-492b-8360-d5076913578b"
},
{
    "url": "http://localhost:3000/users/",
    "gadget_id": "",
    "user_id": "db0722e7-3224-4db1-8a94-372ab462ae70"
},
{
    "url": "http://localhost:3000/users/",
    "gadget_id": "",
    "user_id": "8d0f87f1-6697-4e08-8ddd-0e34e2015787"
},
{
    "url": "http://localhost:3000/users/",
    "gadget_id": "",
    "user_id": "9d788283-87a9-4c38-8d48-30ddc1604058"
},
{
    "url": "http://localhost:3000/users/",
    "gadget_id": "",
    "user_id": "8a86b353-df4c-40fd-a5a1-cfa5f27c41c4"
},
{
    "url": "http://localhost:3000/users/",
    "gadget_id": "",
    "user_id": "a67485e5-fb13-4863-ab55-01fd58c2600f"
},
{
    "url": "http://localhost:3000/users/",
    "gadget_id": "",
    "user_id": "3ab7211d-99e7-4cc6-a862-ac106c2a24de"
},
{
    "url": "http://localhost:3000/users/",
    "gadget_id": "",
    "user_id": "378b2e77-7e18-4d75-b780-c9281b86c8ee"
},
{
    "url": "http://localhost:3000/users/",
    "gadget_id": "",
    "user_id": "df1e35ca-37c5-4026-aa59-ebc02e348fdf"
},
{
    "url": "http://localhost:3000/users/",
    "gadget_id": "",
    "user_id": "2e0aadab-efe2-42e5-9088-c0bb1c6c9631"
}
]

以及用于创建小工具的 POST 请求:

正文(原始/JSON):

{
    "id": {{gadget_id}}
}

预请求脚本:

// Initialize ids
var gadget_id= pm.iterationData.get("gadget_id");

根据:

https://blog.postman.com/using-variables-inside-postman-and-collection-runner/

这应该足够了。未创建正文(id 设置为空)。

如何让邮递员读取文件并正确地为变量赋值?

编辑:

尝试将变量包装成双引号,但仍未设置:

{
    "id": "{{gadget_id}}"
}

【问题讨论】:

  • 几件事 - 如果这是集合中唯一具有该名称的变量,则无需将其添加到预请求中。确保在 Runner 中运行集合之前保存集合中的所有请求。您可能需要用引号将该变量包装在正文中。
  • 此实例中的变量旨在成为从 JSON 文件中读取的 id 数组;我想对存储在该变量中的每个单独的 id 有一个单独的 POST 请求。我发现了无数设置奇异变量的示例,但没有一个可以迭代该值。
  • 加双引号并清除预请求脚本并不能解决问题;身体仍然没有分配给它的 id。
  • 好的,数据文件是该变量的字符串,所以这就是我在正文中建议的原因。您的问题和您的用例不同 - 编辑问题并阐明您要做什么可能是个好主意。

标签: javascript postman postman-collection-runner postman-pre-request-script


【解决方案1】:

起初看起来并不直观;但是邮递员在运行 Collection Runner 时分配变量值。运行单个请求时不能分配变量。

设置:

预请求脚本:

var gadget_id = pm.iterationData.get("gadget_id");

正文:

{
    "id": "{{gadget_id}}"
}

所有请求在collection runner中并行运行;我不知道如何以给定的顺序运行请求集和子集。

【讨论】:

  • 可以将它们分配给单独的请求运行,这是它们的正常用例。 ? 您尝试运行它们的方式不起作用,因为这不是您在应用程序中使用 Postman 变量的方式。在不同的范围内有许多不同的变量,它们以不同的方式起作用。
猜你喜欢
  • 2019-11-16
  • 2021-11-23
  • 2020-06-17
  • 2021-01-23
  • 1970-01-01
  • 2020-04-27
  • 1970-01-01
  • 2021-04-13
  • 2019-04-25
相关资源
最近更新 更多