ServiceMock录制回放
- 原理:
利用Sping AOP拦截方法执行从而实现录制回放
- 匹配算法:
指定具体类和方法
通配包、类和方法名
上述两种的并级
- 工作模式:
录制:将某个方法的执行过程录制下来,形成MockRecord并序列化成JSON文件
回放:在某个方法执行时,如果是回放范围内的,则拦截该方法的执行,将匹配方法执行的MockRecord记录作为本次执行的结果进行返回
增量录制:在回放时,如果查无记录,则执行真实的方法并进行录制
- 使用场景:
辅助集成测试:开发人员使用JUnit5+SpringBootTest进行集成测试,并使用@ServiceMock来指定依赖进行录制和回放。
接口录制回放:在微服务运行时,通过拦截HTTP请求和处理过程中的指定依赖来自动形成可用于回放的接口自动化用例。
后端重新录制:根据提供的HTTP请求文件来回放并重新录制指定依赖来更新接口自动化用例。
- 特殊使用场景:
异常录制:如果方法在执行过程中产生了异常,则需要记录该异常,以便于回放时将相同的异常作为该方法被再次执行时的结果。
有状态回放:默认情况下,在回放时将返回匹配到的第一条MockRecord记录。某些情况下,如转账前后,查询账户余额,相同请求下希望有不同的返回值,因此设计了有状态回放来支持该类场景。
入参改变:在方法执行的前后,该方法的入参可能发生变化,如某方法的入参是某个实体,该实体的某个属性如ID在方法执行后被赋值,或者该方法的某个入参是Map,且该Map在方法执行后插入了额外的记录。
模拟匹配:方法入参中如果有时间戳、序列号等每次方法执行会发生改变的场景,可以通过模糊匹配的方式来解决
Mock回调接口:对于特别复杂的场景,可以通过这个回调接口来由用户自行修改录制的Mock数据用于回放,满足一些个性需求
- 特殊的序列化反序列化算法:
对无法进行序列化的流、迭代器、文件、泛型、会话、前端分页等的录制和回放方法
双重开关,
加载开关:生产上默认不加载,避免生产意外
启用开关:必须指定开启之后再行工作,按需开启
工具原型见 2021第一篇-流量录制回放完整案例
相关文章
- 新天骄贵族 1115冷月版外挂(可录制脚本)
- Piezo for Mac(小巧高效的音频录制工具) v1.7.11特别版
- Audio Hijack for Mac(强大的音频录制软件)v4.0.6免激活版
- Mac屏幕录制软件:Camtasia 2022
- Camtasia 2022 for Mac(屏幕录制必备)
- AnyMP4 Screen Recorder for Mac(视频捕获与录制工具)
- Python+tkinter+PyAudio录制电脑扬声器声音
- Canvas实时回显和录制
- 订单流量录制与回放探索实践
- JMeter笔记6 | JMeter录制(配置代理)
- Camtasia中文最新2023电脑屏幕录制编辑工具
- 使用NotePad++录制宏功能如何快速将sql搜索条件加上前后单引号
- Linux下的视频录制(录像forlinux)
- 大疆御Mavic Pro 3无人机曝光:新外形、支持8K录制
- iPhone 13将具高分辨率视频录制与肖像模式、高刷屏与更小的刘海
- 传三星砍掉了Galaxy Z Fold 3的8K视频录制功能