集團的代碼覆蓋率平臺由於網絡問題沒法使用,只能本身研究下。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的