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的在线流量,就可以看到刚请求的数据了
回放流量:
截止到这里,安装录制流程就结束了。随着公司业务不断的发展壮大,涉及的应用逐渐增多,业务场景逐渐复杂,对于复杂场景数据模拟过于复杂,通过流量录制访问的形式,可以更大可能性保证测试回归的数据接近真实性。
标签:console,回放,java,压测,录制,sandbox,repeater From: https://www.cnblogs.com/zhaoruixiao/p/17070451.html