背景
在我司 S 产品测试时,日常工作有百分之 70 是需要跟接口测试打交道,搭建的 MockServer 有数十个。 接触过多个搭建 MockServer 平台,整理成文,分享之。
目录
part1:Mock Server是什么
part2:为什么要使用Mock Server
part3:Mock server能干什么
part4:Mock server的弊端
part5:搭建Mock Server有哪些方式
MockServer是什么
MockServer可用于模拟任何通过HTTP或HTTPS(即服务、web站点等)集成的系统
当MockServer接收到请求时,它将根据已配置的活动预期匹配请求
期望定义所采取的操作,例如,可以返回响应
用我的话来说:
一个能模拟 正式服务的 一个虚拟服务 ,能返回 response 。
我司S产品使用 MockServer 大部分场景都是如上所示 。
我司S产品是需要跟其他公司进行对接的,其他公司提供 接口文档、正式接口地址,但未提供测试接口地址。
开发提测之后,我们测试环境是会有一些BUG, 我们如果去调用对方的生产环境的 API 接口会产生很多的脏数据,无效数据。
我们只能调用对方的测试环境的API 接口,但
1.对接文档中未提供这样的一个测试环境API接口调用地址
2.若对方提供了,我们也不会去调用,因为如果哪一天对方的测试环境出现问题,我们是不能正常的测试的, 对别人的依赖性太强了 。
所以我司S产品,测试时,测试工程师会自己搭建MockServer来模拟第三方服务。
MockServer用处
官方解释:
测试
轻松地为HTTP依赖项(如REST或RPC服务)重新创建所有类型的响应,以便轻松有效地测试应用程序
…
脱钩发展
在服务可用之前,开始对服务API进行操作。如果一个API或服务还没有完全开发好,MockServer可以模拟该API,允许使用该服务的任何团队立即开始工作
…
Mock server能干什么
- 构造测试所需要的、不同的、异常场景的response,以覆盖更多的场景
- 方便测试
- 前端好了,但后端还没好,前端用于联调测试
- 我司与第三方接口联调时,第三方还没好/不支持测试接口时,可以搭建 Mock
Mock server 弊端
时间成本。需要根据对接文档构造对应的response,且不同场景的覆盖,需要经常手动的篡改response返回的值
非真实的环境。可能对方API接口返回的数据变更了,但文档未及时更新,而我们是根据文档构造的response,会遇到发布生产后,发现生产环境存在问题
对方API的实际实现与文档有出入。
搭建Mock Server有哪些方式
代码
工具:
Postman
eolinker
easymock
easydoc
metersphere
等等