【问题标题】:Postman: Generating POST request body from GET response邮递员:从 GET 响应生成 POST 请求正文
【发布时间】:2021-07-12 19:41:13
【问题描述】:

我通过应用以下文章中的步骤为我的应用生成 API 和集合:The hidden gem: Postman API and Documentation feature

您可以尝试使用测试端点,例如https://petstore.swagger.io(用户:测试,通过:abc123)。

这是我尝试生成的示例 json 正文:

{
    "name": "{{$randomLoremSentence}}",
    "description": "{{$randomAdjective}}",
    "productUuid": "{{productUuid}}",
    "address": "{{$randomLoremSentence}}"
}

但是,我正在寻找一种实用的方法来为 Postman 请求生成 json 正文。有没有合适的方法?还是我必须手动构建每个请求?我认为必须有一个更聪明的方法。有什么想法吗?

【问题讨论】:

  • 在预请求脚本中以编程方式?通过环境传递信息?不清楚问题是什么。
  • Collection runner 可能会帮助你做一些“聪明”的事情learning.postman.com/docs/running-collections/…
  • @matt 请看我的更新?
  • @aksappy 感谢您的回复,但我需要生成值而不是运行跑步者(我已经运行了其中一个,但我需要生成)。有什么想法吗?
  • “这是我正在尝试生成的示例 json 正文” 看起来您实际上已经生成了它。只需将其粘贴到请求正文中即可。但正如我所说,如果您愿意,可以在预请求脚本中生成它。

标签: swagger postman swagger-ui openapi postman-mocks


【解决方案1】:

JSON 响应正文不是在 POSTMAN 中创建的,它是由来自 Web API HTTP 请求的响应生成的。

执行的 API 方法决定响应。

确定响应及其结构后,您可以在 POSTMAN 集合中创建请求和测试脚本。

使用示例输入手动测试每个 HTTP 请求,然后将其复制到现有集合中,然后为每个测试用例编写测试脚本,将任何输入参数模板化到 URL 查询字符串或 具有全局或集合范围变量的 JSON 请求正文。

确定如何对每个请求(以及测试脚本和预请求脚本)进行参数化和模板化后,您就可以 实现测试脚本以使用 BDD 表达式对 JSON 响应内容创建断言。

我建议查看 POSTMAN 文档

https://learning.postman.com/docs/writing-scripts/test-scripts/ https://learning.postman.com/docs/writing-scripts/script-references/test-examples/

因为它展示了一些非常好的示例,说明如何创建基本测试,然后使用 JavaScript、Chai BDD 语言和 POSTMAN Collection Runner 将其自动化。

这是基于我对 POSTMAN 的经验。我不知道任何简单的方法 从 API Swagger 定义自动创建请求和测试脚本,因为每个 API 方法响应都可能基于不同的输入有任意数量的潜在响应,因此(我相信)必须由测试人员手动构建。

【讨论】:

  • 非常感谢,投了赞成票。我也看看你建议的这些页面。但是,我不确定创建测试和预请求脚本是否只有一种选择。
  • 例如,我为 Product 发送 GET 请求,然后我想将所有响应参数创建为环境变量,例如名称、数量和价格。然后,当我发布请求时,我想将名称指定为 {{name}}(在第一次返回产品请求后设置)而不是“虚拟名称”。 >>>
  • 为此,我想在请求的预请求脚本和测试字段上生成必要的字符串。所以,我想知道人们是否构建这种脚本并手动设置必要的参数,或者是否有办法自动生成这些值?
  • 没有已知的方法(我知道)在 POSTMAN 中自动生成测试脚本,正如我所提到的,来自 API 请求的参数是从 API 服务确定的。唯一的另一种可能性是,如果您能找到一个实用程序,它可以读取 API 控制器方法,从中生成 Swagger 文档,然后通过 UI 界面生成测试脚本,其中每个 API 方法的输入和预期输出可能是指定。
  • 查看了 POSTMAN 网站上的文档后,我提到的程序是我能找到的唯一一个,也是我使用的那个。在集合中创建一组测试并对其进行参数化后,您可以重新使用具有不同输入和/或输出参数的相同测试。
猜你喜欢
  • 2019-07-01
  • 1970-01-01
  • 2017-12-30
  • 2022-06-16
  • 2020-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-23
相关资源
最近更新 更多