跳到主要内容

Mock 示例

模拟服务器 通过返回预定义数据来模拟 API,使你能够在 API 投入生产之前(或不使用生产数据)对其进行开发或测试。在 Postman 中,模拟服务器依赖于保存在集合中的 示例来返回模拟数据。 按照以下步骤亲身演示模拟服务器和示例如何协同工作,并了解如何将它们集成到你的 API 工作流中。

创建模拟服务器

下面的步骤将引导你完成在 Postman 中创建模拟服务器的过程。首先,你将设置模拟服务器工作所需的一些基础知识。一旦你的模拟服务器启动并运行,你将向它发送请求并了解你的示例如何用于返回数据。

第 1 步:发送请求

在 Postman 中,通过选择+或选择新建 > HTTP打开一个新请求。保留GET作为方法,并为请求 URL 输入https://postman-echo.com/get?test=123。准备就绪后,选择发送

此请求调用 Postman Echo 服务,你可以使用该服务来测试 REST 或 SOAP 客户端并进行示例 API 调用。生成的响应显示在响应窗格中。

发送请求

第 2 步:将请求保存到集合中

选择保存以将请求保存在集合中。 集合 是可用于组织工作和创建 API 工作流的请求组。

保存请求

输入请求名称不要在“保存到”中选择现有集合,而是选择“新建集合”。输入C1集合名称并选择Create。然后选择保存以将请求保存到新集合。

将请求保存到新集合

第 3 步:将响应保存为示例

要保存从 Postman Echo 服务收到的响应,请选择保存响应 > 另存为示例。该示例保存在请求下方,位于C1集合内。

保存示例

在边栏中选择CollectionsC1 ,展开集合和请求,然后选择示例将其打开。

开个例子

要重命名示例,请选择 编辑图标 名称旁边的编辑图标。重命名示例E1。请注意,请求方法、URL 和状态代码都保存为示例的一部分。Postman 使用这些项目来确定模拟服务器返回哪些响应。

重命名示例

第 4 步:为集合创建模拟服务器

现在你已将示例添加到你的集合中,你已准备好设置模拟服务器。在边栏中选择收藏集。更多操作图标 选择集合旁边的更多操作图标 C1,然后选择模拟集合

模拟一个集合

对于模拟服务器名称,输入M1。你还可以根据需要为模拟服务器指定其他详细信息:

  • 集合已设置为C1,因为你选择模拟此集合。
  • 如果你保存的示例使用 环境变量 (如{{base_url}}/my/path),你必须选择相应的环境,否则模拟服务器将无法运行。在这种情况下,该示例不使用任何变量,因此你可以选择No Environment
  • 默认情况下,模拟服务器是可公开访问的。如果你选中Make mock server private复选框,模拟服务器将不再公开。你可以与团队成员共享并提供编辑或查看 权限。 现在,不要选中此复选框。

完成模拟服务器配置后,选择创建模拟服务器。你可以随时通过在边栏中选择模拟服务器来访问模拟服务器。

创建模拟服务器

你还可以使用 Postman API 创建模拟服务器。

第 5 步:向模拟服务器发送请求

现在你已经创建了模拟服务器M1,你可以向模拟端点发送请求。

首先,复制模拟服务器 URL。在边栏中选择模拟服务器M1,选择模拟服务器,然后选择复制模拟 URL

复制模拟网址

接下来,通过选择+或选择New > HTTP创建一个新请求。将模拟 URL 粘贴到新请求中并选择发送

模拟服务器错误响应

发送此请求会返回错误。原因是因为你没有添加到模拟服务器 URL 的路径,并且没有匹配的未定义路径和请求方法的已保存示例GET。模拟服务返回的响应完全取决于你保存的示例中的 URL 和方法。

但是,你确实有一个包含路径/get和请求方法的已保存示例GET。添加/get到模拟服务器 URL 的末尾并再次发送请求。这次你从模拟服务器收到了预期的响应。

模拟服务器正确响应

第 6 步:添加另一个示例

要进一步演示模拟服务的响应如何完全依赖于你保存的示例,请将另一个示例添加到集合中C1。重复上面的步骤 1 到 3 以将请求保存到集合中,然后将响应保存为示例E2,这次使用请求 URL https://postman-echo.com/test

添加第二个示例

发送GET请求https://postman-echo.com/test返回 404 错误,你将其保存为另一个示例。该集合C1有两个请求和两个保存的示例:

  • 示例 E1 -GET请求路径/get
  • 示例 E2 -GET请求路径/test

最后,重复 第 5 步 ,但这次/test在发送请求时将路径添加到模拟服务器 URL 的末尾。这将返回预期的 404 响应。

向模拟服务器发送另一个请求

你的示例可能因 URL 端点、请求方法或状态代码而异。如果你有多个示例,你可以选择将每个示例保存在一个唯一的端点 URL 下,就像你在本演示中使用 和 看到的/get那样/test。如果你保存了具有不同响应状态代码的示例,则可以向模拟服务器发送经过身份验证的请求以及x-mock-response-code指定返回的响应需要匹配的整数响应代码的 header。

使用查询参数

Postman 的模拟服务使用 匹配算法 来选择最合适的已保存示例以响应请求返回。作为该算法的一部分,模拟服务器在将请求与保存的示例进行匹配时查看查询参数。如果你有仅查询参数不同的示例,你可以模拟同一请求路径上不同查询参数的不同响应。在这种情况下,模拟服务器将返回匹配该请求路径和相应查询参数的准确响应。

这是一个说明匹配查询参数如何工作的场景:

  • 集合Query Params Demo有一个请求Request1和两个示例,Example1Example2

  • Example1中,参数id的值为1

    查询参数示例 1

  • Example2中,参数id的值为5

    查询参数示例 2

  • 在这种情况下,Example1Example2分别传递15。当你向模拟服务器 URL 发送请求并传递这些不同的查询参数时,Postman 会返回与路径和传递的参数匹配的准确响应。

    查询参数模拟响应

如果没有找到完全匹配,Postman 将根据其 匹配算法 返回最佳响应。

模拟 GraphQL 查询

Postman 的模拟服务使你能够模拟 GraphQL 查询。要模拟 GraphQL 查询,请使用模拟集合中示例中保存的请求路径和请求正文向模拟服务器发出请求。

确保在你的示例中将Content-typeheader 设置为application/json

查询参数示例 1

还要确保在向模拟服务器 URL 发送请求时传递x-mock-match-request-body值为 的 header。true

查询参数示例 1