10 年测试开发,专注于 JVM 底层,精通字节码技术,可提供 JVM 系语言的测试覆盖率,影子数据库等解决方案。也擅长自动化测试。

  • -jar 参数启动的话需要把 agent 的 jar 包加入 bootclasspath 哦,github 空间里的 wiki 有介绍,有问题可以先看看 wiki

  • 感谢使用,github 有邮件通知,有问题欢迎到空间里提 issue,一般都会看的

  • 是的,所以我这个 agent 专门支持了热部署和热卸载,如果不得已要在线上调试的话,可以找业务低谷时段放上去用

  • 没错,我就是研究了 jacoco 后发现在上面二次开发也没法满足我的要求,所以就从 0 写了

  • 请务必使用一下,如果确实发现你的某条分支未检测到执行覆盖的话,可以给我提 issue。我会很感激帮我完善工具的行为。

  • 谢谢。
    覆盖率这个东西,越做到后面越印证了那句话,测试三分靠技术,七分靠管理。完整的解决方案必须要结合管理手段来实现的。所以有问题的话欢迎一起探讨,如有对工具有更多需要的功能,也可以到 github 上给我提 issue,我看到后会在业余时间抽空给工具添加上的。

  • 感觉我很合适,testerhome 里有几篇文章,可以点我资料看看。

    不过可能不太方便挪窝,有远程岗位吗?

  • 能完整的看一遍再发言吗?至少把限定语境看一下吧。关于安全性,本身就是个开源软件,有问题提出来打补丁就行了,没什么好说的。关于性能,劳烦看一下 GH 上的 wiki。

    生产中有没有别人用我不知道,不过你这话倒让我回忆起了一点往事,当年我也是准备买商业工具来做这个事情的,谈了个供应商,效果大概也是我这样,然后工具要价 50w,每测试人员每 license 要价 5w(都是买断的一口价),我觉得贵了,才自己做了一个。

  • 1、请确保将 build/libs 下的所有 jar 都放到了你指定的目录中,除了 remote-debug-agent.jar 外,应该还有十几个 jar,你所述的 Exception 所描述的类是在 asm 开头的几个 jar 包里。

    2、可以描述一下你的环境,或者贴出完整的报错吗(到我的 github 提 issue 也行)?有多种情况可能造成 ClassNotFoundException,可能跟 jvm 本身的类加载规则有关。比如一些使用-jar 参数启动的情况下,或者环境不使用 jdk 自带的 AppClassLoader 时(比如 Scala)。可以试一下将 remote-debug-agent.jar 加入到 bootclasspath 中(java 命令行带上参数 -Xbootclasspath/a:${你的目录}/remote-debug-agent.jar)

    这篇文章确实写得比较简陋😅 ,近期我也打算写一下更详细的使用说明,或者 wiki。欢迎持续关注本工具。

  • 本工具从设计上来说,是以调用者为记录的粒度的,不是以某一个请求为粒度,所以可能无法以你描述的视角来做这个事情。或者说我的工具侧重的是调试或测试,你说的场景有点侧重于运行监控。

    当然从我的视角出发也可以实现你所说的效果。前面我介绍得有点简单,实际上探针提供了一组灵活的 api 供使用。如果访问http://ip:8098/trace/地址可以看到我实际提供了 start、stop、list、clean 4 个 api,你可以先调用 start 接口,然后发送请求 A,然后调用 list 得到 A 执行的方法,之后调用 clean 接口,可清空你这个调用者之前记录的数据,再发送请求 B,再调 list 即可得到 B 执行的方法。

    我应该写个类似 wiki 之类的东西的,但是一直没找到时间。我以后会慢慢补充文档的。

10 年测试开发,专注于 JVM 底层,精通字节码技术,可提供 JVM 系语言的测试覆盖率,影子数据库等解决方案。也擅长自动化测试。