Skip to content

A Java server-side recording and playback solution based on JVM-Sandbox

License

Notifications You must be signed in to change notification settings

penghu2/sandbox-repeater

 
 

Repository files navigation

logo

Build Status License GitHub issues

基于JVM-Sandbox的录制/回放通用解决方案

jvm-sandbox-repeaterJVM-Sandbox生态体系下的重要模块,它具备了JVM-Sandbox的所有特点,插件式设计便于快速适配各种中间件,封装请求录制/回放基础协议,也提供了通用可扩展的各种丰富API。

前言

作为阿里开源的录制回放框架,该框架提供了一个录制&回放基础的流程编排,但是还不能够立马作为自动化测试框架,我基于该框架扩展了很多特性,同时也修了很多bug,并且重新开发了一套UI操作界面,使其成为一个开箱可用的自动化测试平台。

二次开发的必要性

  1. 开源版本有很多bug 开源版本在实际项目应用过程中,有非常多的bug,例如回放子调用匹配问题,部分业务hession序列化不支持等等;

  2. 开源版本插件较少,且能力不足 目前仅支持http、java主子调用、mybatis等等插件,不支持feign、mybatis-plus、redis、spring-data、spring-Async等等

  3. 用例管理能力的缺失 用例管理是自动化测试平台必备的一个能力,因此必须开发

扩展特性列表

  • 支持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提取 image image

image image image

About

A Java server-side recording and playback solution based on JVM-Sandbox

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 85.6%
  • JavaScript 9.4%
  • CSS 4.4%
  • Other 0.6%