1、JVM-sandbox-repeater介绍

2、可以应用到哪些场景?

3、安装部署

《本文由测试开发攻城狮王月明投稿 》

一、JVM-sandbox-repeater介绍

JVM-sandbox(沙箱)是阿里提供的开源项目,实现了一种在不重启、不侵入目标JVM应用的aop解决方案。

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

JVM-sandbox-repeater功能,看一下官方解释:

1、通用录制/回放功能

·无侵入式录制http、java、dubbo入参/返回值录制能力(业务系统无感知)

·基于TTL提供多线程子调用追踪,完整追踪一次请求的调用路径

·入口请求(http/dubbo/java)流量回放、子调用(java/dubbo)返回值mock能力

2、快速可扩展api实现

·录制/回放插件式架构

3、Standlone工作模式

·无需依赖任务服务端/存储,可以单机工作,提供录制/回放能力

二、可以应用到哪些场景?

1、业务快速回归

·基于线上流量的录制/回放,无需人肉准备自动化测试脚本,准备测试数据

2、线上问题排除

·录制回放提供“昨日重现”能力,还原线上真实场景到线下做问题排除和debug

·动态方法入参/返回值录制,提供线上快速问题定位

3、压测流量准备

·0成本录制http/dubbo等入口流量,昨晚压测流量模型进行压测

三、安装部署

环境准备

·首先需要有一台Linux服务器,用于部署录制回放应用

·JDK、maven等基础环境需要搭建完成

·在Git上下载jvm-sandbox/jvm-sandbox-repeater代码

·准备一个java项目,用于录制接口

·准备一个数据库,用于存放录制流量数据

安装:

java -jar sandbox-app-0.01 –SNAPSHOT.jar

 

 

看到上图,表示启动成功

请求接口:

JVM-sandbox-repeater部署

1、 执行install-local.sh

2、 安装完成后,用户目录下会出现sandbox、sandbox-module文件夹

3、 初始化数据库脚本

4、 启动repeater-console.jar文件。启动前,修复一下官方仓库里console项目重点一些代码问题

(1)查找

repeater-console/repeater-console-start/src/main/resources/velocity下面的所有文件,查找 #parse("/blocks ,统一改替换为 #parse("blocks 。原有代码最前面带上 / 会导致引用找不到报错

(2)修改

repeater-console/repeater-console-start/src/main/java/com/alibaba/repeater/console/start/controller/page/ReplayController.java中的 return "/replay/detail"; ,改为 return "replay/detail"; ,去掉双引号里面第一个 /

(3)修改

repeater-console/repeater-console-start/src/main/java/com/alibaba/repeater/console/start/controller/test/RegressPageController.java中的 return "/regress/index"; ,改为 return "regress/index";,去掉双引号里面第一个 /

启动console:java -jar repeater-console.jar

5、 访问console页面

进入console页面,操作配置管理,新增配置

应用名:unknown

环境:unknown

配置信息:

 

 

6、让repeater注入到被测应用

7、录制回放

访问录制接口

查看录制数据

点开console的在线流量,就可以看到刚请求的数据了

回放流量:

 

 

截止到这里,安装录制流程就结束了。随着公司业务不断的发展壮大,涉及的应用逐渐增多,业务场景逐渐复杂,对于复杂场景数据模拟过于复杂,通过流量录制访问的形式,可以更大可能性保证测试回归的数据接近真实性。

posted on 2023-01-28 15:45  aha_baby  阅读(524)  评论(0编辑  收藏  举报