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和两个示例,Example1和Example2。
在Example1中,参数
id
的值为1
:在Example2中,参数
id
的值为5
:在这种情况下,Example1和Example2分别传递
1
和5
。当你向模拟服务器 URL 发送请求并传递这些不同的查询参数时,Postman 会返回与路径和传递的参数匹配的准确响应。
如果没有找到完全匹配,Postman 将根据其 匹配算法 返回最佳响应。
模拟 GraphQL 查询
Postman 的模拟服务使你能够模拟 GraphQL 查询。要模拟 GraphQL 查询,请使用模拟集合中示例中保存的请求路径和请求正文向模拟服务器发出请求。
确保在你的示例中将Content-type
header 设置为application/json
。
还要确保在向模拟服务器 URL 发送请求时传递x-mock-match-request-body
值为 的 header。true