jacoco初探


# 背景

 集團的代碼覆蓋率平台因為網絡問題無法使用,只能自己研究下。

覆蓋率是衡量自動化用例效果產品的一個指標,但只是一個輔助指標,覆蓋率高並不意味着質量好,但覆蓋率低卻能說明一些問題,

 

# 對比

覆蓋率工具的對比,直接引用資料:

有贊團隊的博客: https://tech.youzan.com/code-coverage/

 

# 理解 

1. 結合業務形態,被測服務不能停止服務;

2. 通過javaagent方式去啟動jacoco;

3. javaagent的方式可以用file,tcpserver、tcpclient三種模式,常用的是tcpserver格式

4. 掛載javagent后,可以利用ip:port來跟javaagent進行網絡交互,生成exec文件,生成報告;

 

# 細節

1. jacoco官網:https://www.eclemma.org/jacoco/ 上去下載agent.jar包;

2. javaagent格式:

  -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的 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM