一、直接对三方的Mock
这种方式其实也是最简单的方式,搭建一个spring工程,实现对对应接口的模拟。采用postman等工具其实也可以实现简单的对三方模拟,最好的方式是返回结果可以写在数据库中,本质就是根据请求的参数返回指定的结果。
几种常用方式:保证数据库值的有效性,信息扭转过程中的有效性。
- 参数来自数据库
- 值来自数据库
- 请求原代码中的接口等等
二、接口但是涉及到落库
其实在很多自动化代码中也会遇见过类似场景,通常实现方式无非对数据的操作与服务代码的调用。
三、RPC服务相关
通过filter拦截,在方法做切面时设置参数
切面参数用到ThreadLocal(做线程参数的副本)
用到
比如对接理财银行产品接入:
- 每家银行的数据类型不相同,因此对接不同银行要做数据适配
- 涉及到如trade、assert、account、bridge等等服务,最外层可以采用bridge进行统一封装对接
- 每一次请求如一个线程,所以可以对线程赋值,采用ThreadLocal统一管理(保存线程中值的副本,相互请求资源隔离)
- 底层操作,不涉及银行方面,则可以采用统一的服务,如账户管理、交易管理、资产付息管理等等
- 所以整体mock可以考虑在bridge层展开。
在bridge展开过程中
- 建立一个元素切面如:ParamCacheAspect,保存如渠道Supplier、方法Method、名字name
- 在通过供应商路由:XXXAccountFacade
- XXXApiManage
- 到invoke的动态代理
- 通过SOFA Filter的过滤器

本文探讨了在对接三方服务时如何使用Mock技术进行接口模拟,包括直接模拟接口、涉及数据库操作的接口处理以及RPC服务的拦截与切面处理。举例介绍了在银行产品接入中的数据适配和线程管理策略。Mock常见于无法控制第三方返回、依赖系统未完成、不允许重复请求或有访问限制的场景,以保证测试的顺利进行。
最低0.47元/天 解锁文章
5万+

被折叠的 条评论
为什么被折叠?



