最近有点兴趣想研究研究流量回放,目标语言是java,所以在已知的开源项目中,好未来的柯南和阿里的jvm-sandbox-repeater对比了一下,最终选择了网上相对资料多一些的jvm-sandbox-repeater。于是找到了两篇文章(32) [jvm-sandbox-repeater 学习笔记][入门使用篇] 1 安装与启动 · TesterHome
通用流量录制回放工具 jvm-sandbox-repeater 尝鲜记录 (0716 跑通基于 console 的录制回放) · TesterHome想顺着思路搞一搞,过程记录如下。
首先是要启动repeater-console服务,根据第一篇,我先执行了mvn clean install -Dmaven.test.skip=true && java -jar repeater-console/repeater-console-start/target/repeater-console.jar
,后按照第2篇教程要执行bin目录下的bootstrap.sh文件,执行过程中报错,
于是查看源码,发现内部调用了install-local.sh文件,install-local.sh里面有一行,
curl -s https://github.com/alibaba/jvm-sandbox-repeater/releases/download/v1.0.0/sandbox-1.3.3-bin.tar | tar xz -C ${HOME} || exit_on_err 1 "extract sandbox failed"
这行报的错,于是查了一下报错,说是文件下载不完整,于是看了一下目录下的文件,发现压根就没有这个tar文件,怀疑可能是github网络不通,于是在我本地下载完上传到了服务器上,继续~使用人家的sh里面的命令tar xz -C /root 接这个tar文件的路径,怎么调整也不好使,由于这块人家使用的这个管道命令可能有些规则,不懂,猜测是要解压这个文件并放到/root目录下,于是临时手动在root目录下解压了这个文件,sh后面紧接着的命令cp什么的都分别手动执行了,因为我最开始已经打了包,后面直接用就行,按照命令,执行了
${JAVA_HOME}/bin/java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 -javaagent:${HOME}/sandbox/lib/sandbox-agent.jar=server.port=8820\;server.ip=0.0.0.0 -Dapp.name=repeater -Dapp.env=daily -jar ${HOME}/.sandbox-module/repeater-bootstrap.jar
启动报错,说是数据库连接的问题,于是我找了一下配置文件,把密码改了,重新打包,发现还是不行,后来想起来他是cp过去的jar,新包没有cp,为了避免再次报错还得改还得打包然后cp,很麻烦,于是我直接把application文件放到了jar包所在目录一份,这样直接读外部配置即可,密码改完,报错找不到库,发现数据库还没有搞,教程里包括官方文档中也没看到,在项目中全局搜了一下,找到了sql文件的路径repeater-console/repeater-console-dal/src/main/resources/database.sql,新建了库表,启动成功。
于是开始执行第2篇文章的录制回放curl命令,效果如下
怎么和我预想的不一样呢?
--先END--