# 背景
集團的代碼覆寫率平台因為網絡問題無法使用,隻能自己研究下。
覆寫率是衡量自動化用例效果産品的一個名額,但隻是一個輔助名額,覆寫率高并不意味着品質好,但覆寫率低卻能說明一些問題,
# 對比
覆寫率工具的對比,直接引用資料:

有贊團隊的部落格: 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的
雖千萬人,吾往矣!