天天看點

jacoco初探# 背景# 對比# 了解 # 細節

# 背景

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

覆寫率是衡量自動化用例效果産品的一個名額,但隻是一個輔助名額,覆寫率高并不意味着品質好,但覆寫率低卻能說明一些問題,

# 對比

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

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的 

雖千萬人,吾往矣!

繼續閱讀