如何在 Postman Collection 中指定 JSON 请求正文示例

Posted

技术标签:

【中文标题】如何在 Postman Collection 中指定 JSON 请求正文示例【英文标题】:How to specify JSON request body example in Postman Collection 【发布时间】:2021-04-23 22:26:21 【问题描述】:

我正在以编程方式创建 Postman 集合,并希望提供默认 JSON 请求正文以使请求更容易。

我查看了规范,但看不到如何指定它。有没有人有任何想法?这可以用 javascript 来完成吗,我用它来自动设置标题和环境变量。

这是我正在使用的 Postman Collection 规范定义,v2.1.0 草案 4:

https://schema.getpostman.com/collection/json/v2.1.0/draft-04/collection.json https://schema.getpostman.com/

一个请求由#/definitions/request指定。

body 被指定为下列之一。 JSON 未列出,因此通常使用 raw。下面的摘录显示 rawstring 类型,但没有属性可以包含请求正文的默认值。


  "body":
    "oneOf":[
      
        "type":"object",
        "description":"This field contains the data usually contained in the request body.",
        "properties":
          "mode":
            "description":"Postman stores the type of data associated with this request in this field.",
            "enum":[
              "raw",
              "urlencoded",
              "formdata",
              "file",
              "graphql"
            ]
          ,
          "raw":
            "type":"string"
          
        
      
    ]
  

是否有人知道 Postman 能够通过预先创建的示例,直接使用集合或通过 JavaScript 为 JSON 请求正文指定示例?

更新

可以使用 JavaScript 使用以下内容动态设置身体上的以下 YouTube 视频显示。

const body = 
    "productId": 1234
;

pm.globals.set("body", JSON.Stringify(body));

https://www.youtube.com/watch?v=hSX7Dcjy000

使用这种方法,接下来要弄清楚的是 Postman Collection 是否可以导入和访问自定义属性,例如x-properties,或者如果有其他方法可以通过重载现有属性来加载示例内容。似乎这可以通过加载大量环境变量来完成,每个请求一个。最后一步可能是在用户首次启动端点时自动将正确的环境变量值加载到示例正文中。

以下是有关类似主题的更多信息:

https://learning.postman.com/docs/writing-scripts/script-references/postman-sandbox-api-reference/#scripting-with-request-data

【问题讨论】:

【参考方案1】:

您添加的链接是使用邮递员测试和预请求部分编写脚本,而不是用于以编程方式创建 json。

你可以打开postman,点击collection的倒汉堡菜单,导出collection json。您可以以此为参考。

在生成的json请求中定义为:(只有url、method和body部分不完整)

"method": "DELETE",
"header": [],
"body": 
    "mode": "raw",
    "raw": "requestbody",
    "options": 
        "raw": 
            "language": "json"
        
    
,
"url": 
    "raw": "url/resource1/resource2",
    "host": [
        "url"
    ],
    "path": [
        "resource1",
        "resource2"
    ]

这是从邮递员创建的 json。

【讨论】:

太好了!谢谢。我刚刚尝试了保存、导出和导入。

以上是关于如何在 Postman Collection 中指定 JSON 请求正文示例的主要内容,如果未能解决你的问题,请参考以下文章

postman接口测试

如果每个测试用例的标头都需要新令牌,如何使用 Postman Collection Runner 自动化 Rest apis 测试

如何将响应正文从 Postman Collection Runner Results 导出/下载到外部文件中?

postman 中的各种变量

postman导入postman_collection文件

如果每个测试用例的标题需要新的令牌,如何使用Postman Collection Runner自动进行Rest apis测试