Postman 是一款功能强大的网页调试与发送网页 HTTP 请求的工具,它原本是 Chrome 浏览器的插件,后来由于 Chrome 的政策经常变化,它现在已经通过跨平台的桌面客户端方式提供。它使用简单,功能强大,在网络调试方面广受开发者好评。
这篇文章将教会大家如何利用 Postman,通过 Mock 的方式测试我们的 API。
什么是 Mock
Mock 是一项特殊的测试技巧,可以在没有依赖项的情况下进行单元测试。通常情况下,Mock 与其他方法的主要区别就是,用于取代代码依赖项的模拟对象允许设置期望值。简而言之,Mock 就是创建了一个对象,模拟真实对象的行为。
目的是什么
前端与后端的工作进度不同步,使得两方团队无法有效的完成工作。Postman 中的 Mock 服务器可以减轻团队开发过程中的这种不同步问题。开发可以在不启动后端的基础上,查看预期的响应结果。是一种快速开发的过程
意义何在
在 API 开发的前期,构建 Mock 集合可以帮助开发团队之间清晰沟通,并尽快就预期结果达成一致。事实上,在开发过程中,所有的团队都可以并行工作,相互依赖的工作可以减少延期。
什么是 Mock 服务
Mock 服务不是一个真实的服务,他只是一个被伪装成真实服务的假服务。通过它,我们可以测试我们的 API 并检查结果正确与否。Postman 允许我们创建两种类型的 Mock 服务,私有的和公有的。
私有的 Mock 服务需要我们在请求头里面添加 Postman API key,例如:x-api-key:<your postman API key>
公有 Mock 服务可以被任何人访问。所以使用过程中不需要添加 Postman API key。
如何使用 Postman 创建 Mock 服务
你可以点击工具栏里面的"New"按钮,或者在启动 Postman 的时候也会弹出这个选项。再点击Mock Server,具体不细说。第二种方法在下面说明,两种方法其实是一样的道理
按照下面的步骤进行操作:
1、发送请求(R1)
2、将请求(R1)保存到集合里面(C1)
3、将请求(R1)的响应结果进行保存(P1)
4、为集合 C1 创建一个 Mock(M1)
5、使用 Mock 服务(M1)发送一个请求
6、使用查询参数进行匹配
一、发送请求(R1)
使用 Postman,发送一个 GET 请求到 https://postman-echo.com/get?test=123
。 响应结果如下图所示:
二、将请求(R1)保存到集合里面(C1)
点击 Save 按钮打开 SAVE REQUEST 对话框。你可以将请求保存到既有的集合里面,也可以新建一个集合保存。这里我们新建一个集合 C1,后续可以在 Collections 页签里面查看.
三、将请求(R1)的响应结果进行保存(P1)
点击 Save Response 按钮,保存请求 R1 的返回结果。
这会跳转到下图所示的界面,在这里,可以将请求响应信息保存起来作为示例使用,作为示例使用。我们把这个示例叫做 P1。
关于请求的方式、URL、状态都很重要,可以用于评估创建的 Mock 会返回哪些响应。检查一下所有的这些元素是否符合要求,之后再点击 Save Example 按钮。点击左上角的返回按钮返回请求创建器,就可以在右上角看到我们创建的示例了,把它添加到我们的请求里面。
四、为集合 C1 创建一个 Mock(M1)
在 Postman 中,点击集合 C1 旁边的箭头 (▸) 打开详细信息页面,如果要打开 MOCK COLLECTION 对话框,在 Mocks 页签下面,点击 Create a Mock server 按钮。
在这里,你可以把你的 Mock 服务包括在特定的环境里面,或者选择公有或者私有类型,作为默认的 Mock 服务类型。
要是公有,就不需要走第二三步;私有就要勾选第二步,然后点击第三步,跳去浏览器:
https://restless-satellite-791451.postman.co/settings/me/api-keys
然后点击Generate an API key
按步骤生成就好了(生成之后记得保存)。至此,mock创建完毕。
回到刚刚的步骤,可以找回url:
五、使用 Mock 服务(M1)发送一个请求
复制上面得到的 Mock 的 URL,然后粘贴到我们上一步创建的 Mock 服务的新请求里面。
Mock 服务的响应结果完全取决于你之前保存的示例以及包含的 URL 和请求方法类型。我们之前保存了一个示例,请求路径是 /get,请求方法是 GET。因此,向 /get 路径发送一个 GET 请求会得到符合我们预期的响应。
要是创建mock服务时是私有的话:则需要把账号的
Generate an API key
放到请求头六、使用查询参数进行匹配
Postman 对 Mock 服务的功能进行了扩展,可根据匹配的查询参数返回不同的响应结果。Mock 服务会根据查询参数匹配保存的示例。所以当你有且仅有查询参数存在差异的时候,并且你希望在相同的请求路径上为不同的查询参数模拟不同的响应时,Postman Mock 服务器将返回与请求路径和相应的查询参数匹配的确切答案。
结语:我们已经了解了如何创建集合、保存请求、保存示例、创建 Mock 并使用。
Postman 帐户每月提供有限数量的免费 Mock 服务器调用。你可以在 Postman API 或帐户使用页面查看你的使用限制。