小白也能掌握的覆盖率统计与精准测试技术

问题反馈与相关链接,相关问题可回复帖子,直播间可能会遗漏问题

覆盖率统计实战
小白也能用的工具 jacoco-cli


jacoco-cli 流程

  • instrument 字节码插桩
    • on-the-fly
    • offline
  • dump 覆盖率数据导出
  • report 生成覆盖率报告
  • merge 合并覆盖率

on-the-fly 模式插桩

java -javaagent:/Users/seveniruby/ke/shift_left/jacoco/org.jacoco.agent-0.8.7-runtime.jar \
  -jar start-site/target/start-site-exec.jar

#tcpserver模式 默认6300端口
java -javaagent:/Users/seveniruby/ke/shift_left/jacoco/org.jacoco.agent-0.8.7-runtime.jar=output=tcpserver \
  -jar start-site/target/start-site-exec.jar

dump 导出覆盖率数据

java -jar /Users/seveniruby/ke/shift_left/jacoco/org.jacoco.cli-0.8.7-nodeps.jar \
  dump \
  --address 127.0.0.1 --port 6300 \
  --reset \
  --destfile jacoco_tcpserver.exec


report 生成覆盖率报告

#生成无源代码的报告
java -jar /Users/seveniruby/ke/shift_left/jacoco/org.jacoco.cli-0.8.7-nodeps.jar \
  report jacoco_tcpserver2.exec \
  --html jacoco_html \
  --classfiles start-site/target/classes/

#生成有源代码关联的报告
java -jar /Users/seveniruby/ke/shift_left/jacoco/org.jacoco.cli-0.8.7-nodeps.jar \
  report jacoco_tcpserver2.exec \
  --html jacoco_html \
  --classfiles start-site/target/classes/ \
  --sourcefiles start-site/src/main/java/

手工测试用例与覆盖率关联演练

相关链接

https://github.com/spring-io/start.spring.io.git

https://www.eclemma.org/jacoco/

https://www.jacoco.org/jacoco/trunk/doc/cli.html

https://repo1.maven.org/maven2/org/jacoco/

活动

image

2 个赞

python项目有类似的工具麽

python也有类似的技术的,不像java那么成熟,需要自己定制开发下

老师,请教一下,python类似工具是什么的,我找来预研看下

思寒老师,这个merage官方写着只支持同一套代码生成的exec文件,我想要合并不同代码的怎么搞?有现成二次开发好的jar包嘛?

需要的场景:
开发第一次提测,生成exec文件(比如覆盖了30%)
开发修改完bug我们接着测,又生成exec文件,多次这样发版
我想查看 本轮测试我到底覆盖了多少? 因为每次改bug发版,代码肯定是有改动的,这个如何搞?

有没有这个的视频?我看测开18期的课没有关于jacoco视频

不同代码基,很多信息是错乱的,这个我没发现特别好的工具,貌似只能自己定制了。

这个训练营的视频,应该是在提供给学员的独立的一个福利合集了,不在正课里。

那思寒老师,别的公司jacoco是用在什么场景? 我说的场景(功能测试阶段)大公司都不需要嘛?定制是自己去二次开发jacoco的源码嘛? 不定制,那是不是就得人工去看多次测试exec的覆盖率,自己去比较了呀