前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ServiceMock录制回放

ServiceMock录制回放

作者头像
Antony
发布2022-12-21 13:54:24
1.5K0
发布2022-12-21 13:54:24
举报
  • 原理:

利用Sping AOP拦截方法执行从而实现录制回放

  • 匹配算法

指定具体类和方法

通配包、类和方法名

上述两种的并级

  • 工作模式:

录制:将某个方法的执行过程录制下来,形成MockRecord并序列化成JSON文件

回放:在某个方法执行时,如果是回放范围内的,则拦截该方法的执行,将匹配方法执行的MockRecord记录作为本次执行的结果进行返回

增量录制:在回放时,如果查无记录,则执行真实的方法并进行录制

  • 使用场景:

辅助集成测试:开发人员使用JUnit5+SpringBootTest进行集成测试,并使用@ServiceMock来指定依赖进行录制和回放。

接口录制回放:在微服务运行时,通过拦截HTTP请求和处理过程中的指定依赖来自动形成可用于回放的接口自动化用例。

后端重新录制:根据提供的HTTP请求文件来回放并重新录制指定依赖来更新接口自动化用例。

  • 特殊使用场景:

异常录制:如果方法在执行过程中产生了异常,则需要记录该异常,以便于回放时将相同的异常作为该方法被再次执行时的结果。

有状态回放:默认情况下,在回放时将返回匹配到的第一条MockRecord记录。某些情况下,如转账前后,查询账户余额,相同请求下希望有不同的返回值,因此设计了有状态回放来支持该类场景。

入参改变:在方法执行的前后,该方法的入参可能发生变化,如某方法的入参是某个实体,该实体的某个属性如ID在方法执行后被赋值,或者该方法的某个入参是Map,且该Map在方法执行后插入了额外的记录。

模拟匹配:方法入参中如果有时间戳、序列号等每次方法执行会发生改变的场景,可以通过模糊匹配的方式来解决

Mock回调接口:对于特别复杂的场景,可以通过这个回调接口来由用户自行修改录制的Mock数据用于回放,满足一些个性需求

  • 特殊的序列化反序列化算法:

对无法进行序列化的流、迭代器、文件、泛型、会话、前端分页等的录制和回放方法

双重开关,

加载开关:生产上默认不加载,避免生产意外

启用开关:必须指定开启之后再行工作,按需开启

工具原型见 2021第一篇-流量录制回放完整案例

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-08-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试那些事 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档