其他测试框架 jvm-sandbox-repeater 流量录制回放

大胡子 · 2021年02月02日 · 436 次阅读

GIT 地址:https://github.com/alibaba/jvm-sandbox-repeater

1. 安装 jvm-sandbox-repeater

修改配置文件

cd /bin
vim repeater.properties

repeat.standalone.mode 改为 false

执行脚本

sh install-local.sh

安装 jvm-sandbox 在~/sandbox 目录,repeater 模块在~/.sandbox-module 目录

遇到问题

  • 异常 1
    执行脚本报错,脚本存在/r 等隐藏符号,可将脚本复制一份即可
    我修改了: install-local.sh 和 package.sh 文件

  • 异常 2
    找不到 JAVA_HOME,注意 JDK 不要用 yum 直接安装,去官网下载对应 tar 包,在/etc/profile 中配置 JAVA_HOME 即可

2. 安装 repeater-console

调整 mysql 相关配置

在 repeater-console/repeater-console-start/src/main/resources/application.properties 改为和自己本地 mysql 数据库一致;

  • 初始化 sql 脚本 初始化的 sql 文件在:repeater-console/repeater-console-dal/src/main/resources/database.sql 创建 repeater 数据库,且包括下面四个表

启动 console

mvn install -DskipTests && java -jar repeater-console/repeater-console-start/target/*.jar

打开此 url 即可打开 console 的界面:http://127.0.0.1:8001/regress/index.htm

修复 console 一些问题

  • 异常 1: 启动之后,发现页面 404

查看控制台日志,发现 url 连接多了 '/'

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

  • 异常 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/resources/velocity 下面的所有文件,查找 #parse("/blocks ,统一改替换为 #parse("blocks 。原有代码最前面带上 / 会导致引用找不到报错

3. 配置管理

在 console 增加配置

点击左侧的【配置管理】,添加如下配置:

配置信息

{
      "useTtl" : true,
      "degrade" : false,
      "exceptionThreshold" : 1000,
      "sampleRate" : 10000,
      "pluginsPath" : null,
      "httpEntrancePatterns" : [ "^/test1/.*$" ],
      "javaEntranceBehaviors" : [],
      "javaSubInvokeBehaviors" : [],
      "pluginIdentities" : [ "http", "java-entrance", "java-subInvoke", "mybatis", "ibatis" ],
      "repeatIdentities" : [ "java", "http" ]
    }

关联被测项目

./sandbox.sh -p ${被测项目pid} -P 12580

然后进入 console 的【在线模块】,应该能看到增加了当前这个被测应用的心跳记录

录制

请求接口
http://localhost:8080/test1/xx'

回放

需要等几秒之后刷新即可

4. 参考链接

https://testerhome.com/topics/23534
https://testerhome.com/topics/27344

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册