PostMan : For Huge data request, 我希望以外部 JSON 文件的形式输入,并且确实在每次迭代时重新放置整个主体

标签 postman postman-collection-runner

应用程序详细信息:

Win7/x64 的 postman

问题报告:

  1. 对于海量数据请求,我希望以外部 JSON 文件的形式输入,并且确实在每次迭代时重新放置整个正文。
  2. 预期行为:请求正文,当我从集合运行时应该能够替换为我的变量
  3. 截图:已附

重现步骤

  1. 集合运行器中我的 Json 文件作为输入数据:

        [{
         "rename": {"AssetId": 5496,"NewName": "API-CK9-2st"},
         "addfolderto": {"FolderId": 5456,"FolderName": "API-CK1"}
        }]    
    
  2. 在我的预请求脚本中:

    var envRename = pm.iterationData.get("rename");
    pm.environment.set("rename", envRename );
    
  3. 在 My Body 中,我尝试直接使用 env。变量来替换正文,例如:

     {{rename}}
    
  4. 运行脚本后,我的请求正文被替换为:

        Request Body:"[object Object]"
    

    而不是我输入的 json 。

屏幕截图链接:

Postman Console log with my comments

请帮助我解决这个问题,对于巨大的数据请求,我希望以外部 JSON 文件的形式输入,并且确实在每次迭代时重新放置整个主体。

最佳答案

您可以使用JSON.stringify()iterationData 变量上使用函数,然后在请求正文中使用 {{...}} 语法。

这是一个在本地使用不同 API 的示例,但使用相同的方法,它应该可以满足您的需要。

如果您不使用 JSON.stringify() 函数包装 iterationData 变量,您将看到 [object Object]作为 POST 请求正文数据发送:

enter image description here


这是我的解决方案:

JSON.stringify() 函数添加到 Pre-Request Script 选项卡并包装 pm.interationData.get('my_object') 像这样:

enter image description here

然后将 {{new_object}} 语法变量添加到请求正文,该值现已被 JSON 字符串化:

enter image description here

Collection Runner中,选择您要使用的数据文件。我使用的 JSON 文件的 key 'my_object' 和 value 作为 JSON 对象而不是单个值 - 您可以在此处查看此文件的预览:

enter image description here

当从Collection Runner运行集合或请求时,它会获取此对象值并在请求正文中使用它。由于我在 Pre-Request Script 中使用了 JSON.stringify() 函数,因此它不会像 [object Object] 一样出现> 我们在开始时看到的。

enter image description here

关于PostMan : For Huge data request, 我希望以外部 JSON 文件的形式输入,并且确实在每次迭代时重新放置整个主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50100615/

相关文章:

azure - azure 上的 blob 的 Put & post 方法返回 404 指定的资源不存在。

python-3.x - 如何使用 postman 发送发布请求,同时保存到 Mongo 数据库?

postman - 在 Postman 的 "Test results"选项卡中打印 API 响应

postman - 如何使用 Postman Collection Runner 运行单个请求?

postman - postman 请求正文中的文件未保存在集合中

go - 使用 gin 包从 Postman Form 获取数据后没有显示任何值

postman - 如何使用预请求脚本构建 Postman url 查询

javascript - 如果结果返回,如何在 postman 中验证而不考虑结果数量

postman - 如何循环请求直到我得到特定的响应?

postman - 预请求 CryptoJS 脚本中的 "TypeError: Cannot read property ' sigBytes ' of undefined"错误