现在都是前后端分离架构,一般是后端人员先设计好接口定义,然后前端人员就可以根据接口定义进行开发了,前期前后端独立开发,互相不影响。
那么问题来了,如果到了中后期,前端开发完了,后端还没开发完,那前端要傻傻地等后端开发完再联调测试吗?到那时,就太晚了,前端的质量就没法保证,一般后端要弄个 Mock 测试,后端提供接口虚拟数据让前端能够提前测试,待后端开发完后再进行真实数据的联调。
前面栈长介绍了一款阿里巴巴开源的 Mock 工具:TestableMock,该工具号称最轻量、简单、舒适的 Mock 测试工具,功能十分强大,还能和单元测试集成,不挑框架,点击上面的链接可以看详细介绍及实战教程。这个工具是后端单元测试集成时用的,并不能用作前端的 Mock 独立测试。
也许现在还有人在用写代码的方式造假数据,那太低效了,今天栈长就介绍一款简单的 Mock 测试方法,能让前端独立开发、模拟测试,Postman 就能搞定!
一、创建 Mock Server
本文,栈长以最新的 Postman 8.0.6 为例进行演示。
打开 Postman,并切换到 Mock Servers 面板:
可以看到 Mock Server 的定义:
Mock servers let you simulate endpoints and their corresponding responses in a collection without actually setting up a back end.
翻译一下:
Mock 服务器可以让你模拟端点及对应的响应,而无需设置后端。
点击 "Create new Mock Server" 文字,开始创建一个新的 Mock Server。
这里栈长选择创建一个新集合(也可以选择已有的集合),然后新建了两个请求及对应的模拟响应数据。
下一步,开始进入 Mock Server 相关配置:
输入 Mock 服务器名称,选中保存服务器 URL 为环境变量选项,最后完成 Mock Server 创建:
创建完后需要做两件事:
1、为每个请求添加 Mock Server 示例响应;
示例添加参考资料:
https://go.pstmn.io/docs-examples
2、发送 Mock Server Url 请求;
Mock Url 如下:
https://41783d96-2f22-4ed6-ac64-62187a0ee521.mock.pstmn.io
这是个公网链接,只有有网,前端就能联调测试。
二、发起 Mock 请求
打开集合(Collections)面板:
可以看到已经创建的 javastack-mock 集合,及之前创建的两个请求及默认示例响应,以及创建的 Mock Server Url 环境变量。
既然已经生成了默认的示例响应,那么直接开始发起 Mock 请求吧,选中一个 get 请求,发起请求:
如图所示:响应返回了默认的示例响应数据。
三、添加自定义示例
实际测试过程中,默认的示例响应数据可能不能满足要求,可以再新增自定义示例,根据增加请求参数来判断走哪个示例,如现在添加一个示例:
为这个示例响应增加了 name 参数和不同的响应数据:
然后再回到 get 请求,加上 name 参数:
发起请求,可以看到现在 get 请求走的是新创建的示例,而没有走默认的,就是根据新加的参数来判定的,只要 URL 和参数匹配就会走对应的示例。
四、Mock 历史记录
回到 Mock Server 面板:
可以看到 Mock Server 历史请求记录。
随便点开一条记录可以看请求、响应详细数据:
总结
今天主要分享了 Postman Mock Server 的使用,其他更多的细节可以再自己摸索哦。
不管你是做前端的还是做后端的,如果你有这方面的 Mock 需求,公司又没有 Mock 流程和规范,那都可以拿起 Postman 试试,毕竟它很简单、方便,可以很轻松的实现一个 Mock Server,而不必写任何代码,难道不香吗?
好了,今天的分享就到这了,后面我还会陆续分享更多好玩的开发技术,关注公众号Java技术栈第一时间推送。
你有更多好玩的东西,也欢迎留言分享!