使用Postman的模拟服务模拟(mock)后端接口

在这个例子中,我们有一个Tesk Mock的集合,并且配置了同名的环境的Tesk Mock。 集合中,有两个request:mock_r_1和mock_r_2,一个GET,一个POST,对应的path分别是/test,/tp。

这里写图片描述

接下来,让我们设置一个 mock server 并且为每一个endpoint模拟一条response。注意,这两个是必须的步骤,没有必然的先后顺序。你可以先mock response,再创建mock server,也可以先创建mock server,再mock response。这里,我们先创建一个mock server。

创建mock server 进入左边的导航栏,选择我们的Test mock集合,会出现一个三角符号(如下图中Postman Echo集合旁边的符号),点击之后,三角符号会反向(如下图中Test mock集合旁边的符号),并且出现针对该集合的配置。这里有一个Mocks,请选择之:

这里写图片描述

接下来的步骤很简单,一路点击创建即可:

这里写图片描述

最后一个步骤,我们得到了一个mock server的地址,也就是说,这个mock server是postman在自己的服务器上为我们创建的,无论我们是否打开postman,我们都可以直接用这个地址来访问mock的API。

别担心你会忘掉这个地址,因为它会自动保存在collection的配置中,按照我们刚才是的步骤,回到这个集合中,在Mocks下面,你会看到你创建的server:

这里写图片描述

点击图中的图标,会直接复制到粘贴板上。然后你可以将其保存在Tesk mock环境的变量中。也可以直接使用。

但这时,你拥有的只是一个mock server,上面没有任何服务可用。你需要在这个server上注册endpoint,并且mock对应的response,才可以使之服务于你。

mock每个endpoint的response(创建example) 这里的步骤也不复杂,针对每个endpoint,或者说是host下面的path,你需要自己提供mock data。在postman里面,这个概念叫做example,即每一个你需要访问的路径/接口/资源,都可以提供一个栗子,即便你连不上,你也可以通过例子知道该路径/接口/资源大概会返回什么样的response。这个example不单单是为了mock而做的,因为postman可以生成API文档,在生成文档的时候,这个例子也会直接放在文档里,方便查阅文档的人了解接口。

具体创建步骤:

打开collection,选择request 为request创建一个example 保存example

这里写图片描述

这里需要注意的是:

每个request都可以有多个example 每个example创建之后都可以修改 Mock server只会采用最后创建的example 使用mock server 在前面的步骤中,我们已经创建了mock server,并且为每个end point至少创建了一个example。这时,mock server就不再只是一个空壳了,它会为每一创建了example的endpoint提供mock服务,mock的内容就是最后创建的example的内容。

我们可以直接在postman上测试:

这里写图片描述

也可直接在浏览器上验证:

这里写图片描述

注意,在验证第二个endpoint的时候,失败的原因是,endpoint是POST权限的,但浏览器默认是用GET去访问。