在进行录制回放过程中,可能在启动过程出现错误,可能在开发插件过程中埋点没有生效等。这种时候如果可以进行打个断点进行单步调试一下,那就太爽了吧。JVM-Sanbox-Repeater 进行项目的录制和回放过程中也是可以进行调试的,通过 Java 探针--Java Agent 技术就可以实现。
扩展: jdk1.5 以后引入了 javaAgent 技术,javaAgent 是运行方法之前的拦截器。使用 javaAgent 能实现运行时修改字节码这个动作化于无形,对业务透明,减少侵入性。
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 //8000是等待远程连接的端口号
-javaagent:${HOME}/sandbox/lib/sandbox-agent.jar=server.port=8820\;server.ip=0.0.0.0 //8820是repeater配置文件中默认的端口
-Dapp.name=repeater
-Dapp.env=daily
-jar /root/下载/springboot-1.0.1-SNAPSHOT.jar // /root/下载/springboot-1.0.1-SNAPSHOT.jar为自己的测试项目
注意:如果你本地的 repeater 的配置文件 repeater.properties 中 repeat.standalone.mode=true ,使用单机工作模式。则第二步启动 repeater-console 就不需要执行了。
jar -jar repeater-console.jar
这里的端口和上面启动命令中的 8000 是一致的,IP 为启动测试项目所在的系统 IP
在 IDEA 中的 JVM-Sandbox-Repeater 中想要调试的地方打上断点
调用测试项目的接口,后面就和单步调试是一样的了