jacoco初探

# 背景

 集团的代码覆盖率平台由于网络问题没法使用,只能本身研究下。html

覆盖率是衡量自动化用例效果产品的一个指标,但只是一个辅助指标,覆盖率高并不意味着质量好,但覆盖率低却能说明一些问题,java

 

# 对比

覆盖率工具的对比,直接引用资料:服务器

有赞团队的博客: https://tech.youzan.com/code-coverage/网络

 

# 理解 

1. 结合业务形态,被测服务不能中止服务;app

2. 经过javaagent方式去启动jacoco;tcp

3. javaagent的方式能够用file,tcpserver、tcpclient三种模式,经常使用的是tcpserver格式工具

4. 挂载javagent后,能够利用ip:port来跟javaagent进行网络交互,生成exec文件,生成报告;code

 

# 细节

1. jacoco官网:https://www.eclemma.org/jacoco/ 上去下载agent.jar包;server

2. javaagent格式:htm

  -javaagent:[yourpath/]jacocoagent.jar=[option1]=[value1],[option2]=[value2]
更多参数:https://www.jacoco.org/jacoco/trunk/doc/agent.html

 实际例子:-javaagent:/home/tools/jacocoagent.jar=includes=*,output=tcpserver,address=xxx.xxx.xx.xx,port=6300,append=true

3. 生成exec文件不局限于ant工具,其实底层仍是经过tcp链接去访问;

4. 生成exce后须要解析成报告,比较麻烦,要有编译后的class文件也有要源码。最理解的状态应该是从服务器拿回本地来操做;

5. 实际落地: 被测服务挂载javaagent --》执行自动化用例 --》 生成exec文件 --》 解析生成报告(被测服务器上生成exec文件)

 

# 疑问

1. jacoco只支持时间段的代码覆盖率的统计,并不能细化到哪一个方法/接口;

2. javaagent的tcpserver和tcpclient的区别是什么?翻阅文档基本上都是tcpserver的,没有用tcpclient的 

相关文章
相关标签/搜索