一·目前微服务及前后端分离模式的大环境下痛点
二·什么是契约测试
三·解决了什么问题
四·契约平台框架
五·平台发展前景
........................................................................分割线!...............................................................................
一、目前微服务及前后端分离模式的大环境下痛点
- 开发进度不一致,联调困难。只能单测
- 服务对接时和接口文档有偏差。接口文档变动未及时通知
- 对接的服务莫名其妙的死掉。服务不稳定
- ......
二、什么是契约测试
契约测试也叫消费者驱动测试(CDC)。
- 有两个角色:消费者和生产者;
- 一个思想:消费者驱动(需求驱动);
- 契约文件:由消费者和生产者定义的规范,比如输入输出接入路径等(接口文档);
- 实现原理:消费者提供一份契约告诉生产者,生产者根据契约生产东东;
- 意义:体现了测试前移的思想,把本来要通过集成测试才能验证的工作化作单元测试和接口测试,用更轻量的方式快速进行验证
三、解决了问题及意义
先容我放一张图
- 在没有契约测试之前如上图左侧,服务对接途中各种问题
- 有了灵活的契约如上右图:
- 前端开发可以用契约当mock 桩;
- 服务端开发可以用契约当调试工具;
- 测试同学可以用契约造批量数据
- 打造全新的研发流程体系
由以上思路打造的全新研发体现平台 --- 契约平台
四、契约平台框架
3.1 契约能力架构
3.1.1、三大块
- 服务代理
- 契约校验:自动校验接口的入参、返回、是否必填等
- 数据跟踪:跟踪数据由源到末经过的系统
- 动态路由:路由环境灵活选择
- 服务限流:限制接口的最大 TPS
- 压测支持:支持并发数据请求
- ......
- 契约管理
- 动态函数:支持 java、python、groovy 脚本动态嵌入,灵活且简单引用生成报文
- 基础管理:项目、服务、应用、文档等在线管理
- 文档导入导出:支持 pdf 导出;postman、swagger、json 串等导入
- 通知机制:服务不可以、文档变更等邮件及企业微信等通知相关人员
- 文档分支:类似 git,好处自提体会
- 报表统计:接口耗时、请求异常、契约校验异常等统计
- 代理日志:查询相关代理日志,释放满屏服务日志刷屏的痛苦
- ......
- 接口测试
- 在线调试:数据及时动态刷新,接口批量发送。比 postman 更好用!
- 响应校验:响应字段自动校验
- 用例集执行:根据契约生成不同的用例集
- 自动化插件:自动工程接入契约平台简单灵活
- ......
3.2 契约应用
说了这么多,契约应用流程是怎么个回事呢?请看下图
+ 1·服务之间路由模式和 mock 模式灵活切换
+ 2·多环境的转发,对比数据差异
+ 3·自动校验服务之间的数据交互
+ ......
五、平台发展前景
- 前沿的文档数据管理方式
- 舒适的测试方法
- 不只是测试平台!
有兴趣的童鞋一起讨论~
ps:机会合适就开源