重构场景的支持

更新时间: 2022-12-01 18:02:43

系统重构如何使用doom回归

重构情况下的引流回放建议

  • 若预发和线上环境配置一样,可以从线上复制流量到预发环境回放。

  • 若预发和吸纳上环境不一样,可从线上环境复制流量到beta机器上进行回放。

重构场景下doom的配置方法

通常系统重构应用执行流程会发生变化,这时还能使用doom回归吗?一般来说,只要流量入口没有特别大的变化,接口功能也没变化时是可以的。如果是读接口接入,即不对中间件及外部服务进行mock,那引流回放很容易就能配置。如果需要mock外部服务,那么配置相对复杂些。

读接口不做任何mock的配置方法

  • [分组环境-客户端配置-隔离的中间件]取消所有隔离中间件。

  • [分组环境-客户端配置-开启DB自动MOCK]选择否。

完成如上配置后doom录制回放不做子调用mock。

应用名改变了如何跨应用引流?

例如应用名从A变为B如何引流: 以一个应用为主进行doom接入配置,例如统一接入B应用,那么在B应用的DOOM配置中录制机器配置A应用的机器进行引流,回放机器则配置B的机器。

主调用变化怎么办?

JAVA流量入口的重构

主调用以及do对象包名更改,类名没改的场景

可以在客户端配置->静态配置->自定义扩展配置->收集机和测试机类包名修改映射去进行包名映射配置。要求重构后的应用要依赖原来未重构时的do类。

主调用包名和类名均修改的场景

Java主调用**处理方式:**

例如:采集机器:x.A类;回放机器变成:y.B类

在回放机器新增一个x.A类去调用y.B类(代理)。同时在回访机器新增x.A类的spring-bean(便于能回放)

在doom平台配置x.A类为调用入口。

HTTP流量入口的重构

方案一:URL 变化、参数名变化可以通过插件扩展在回放前修改快照中的URL以及参数确保能正常回放。

方案二:保留老的HTTP入口存在的情况下对参数做适配,去调用新的重构逻辑,一遍验证新逻辑的正确性。

关于比对

一般来说重构后response一致的直接比对结果即可,如果返回结果格式也重构了,建议通过比对脚本提取需要比对的字段或对象进行对比。

新增子调用怎么办?

新增读接口

将此接口放开,让其真正的调用下去,通过[客户端配置->忽略子调用MOCK]进行配置。

新增了写接口:自定义插件解决

通过插件扩展实现自定义结果返回,一般写接口返回都是比较简单的,可直构造结果返回。也可以在扩展中读取线上录制的快照构造结果返回,这需要根据实际使用场景而定。

插件的使用文档待完成。

重构场景对回放机器有什么要求?

如果是预发或者线上录制,如果开启类子调用放开mock,那么要求回放机器也是预发或者线上beta环境。

阿里云首页 云效(老版) 相关技术圈