基于JVM-Sandbox的录制/回放通用解决方案
jvm-sandbox-repeater是JVM-Sandbox生态体系下的重要模块,它具备了JVM-Sandbox的所有特点,插件式设计便于快速适配各种中间件,封装请求录制/回放基础协议,也提供了通用可扩展的各种丰富API。
作为阿里开源的录制回放框架,该框架提供了一个录制&回放基础的流程编排,但是还不能够立马作为自动化测试框架,我基于该框架扩展了很多特性,同时也修了很多bug,并且重新开发了一套UI操作界面,使其成为一个开箱可用的自动化测试平台。
-
开源版本有很多bug 开源版本在实际项目应用过程中,有非常多的bug,例如回放子调用匹配问题,部分业务hession序列化不支持等等;
-
开源版本插件较少,且能力不足 目前仅支持http、java主子调用、mybatis等等插件,不支持feign、mybatis-plus、redis、spring-data、spring-Async等等
-
用例管理能力的缺失 用例管理是自动化测试平台必备的一个能力,因此必须开发
- 支持mybatis keyGenerator特性的录制 & 回放
- 支持 java Date、System.currentTimeMillis()时间的采集+mock能力
- 支持java bootstap classloader的相关class的采集+mock
- 支持Java Exception的mock + 比对
- 支持采集使用kafka作为传播媒介,降低对宿主应用的性能的影响
- 解决部分线程安全问题
- 支持子调用比对
- 支持主子调用结果的替换
- 支持自定义忽略比对 + 自定义子调用比对
- 支持调度任务
- 支持用例管理
- 支持Http get 请求带body的回放
- 支持Http put、delete的回放
- 解决类加载延迟出现的注入失败的bug
- 解决抽象类注入之后采集跟回放异常的bug
- 解决了Http主调用(采样false) -> Java主调用 嵌套调用场景下 java主调用不采集的问题
- 升级序列化方式为fastjson2, 支持jdk17
- 支持spring @Async @Cache 注解的拦截
- 支持webflux
- 支持流量标签+基于标签的流量推荐
- 支持spring mvc match pattern提取