电竞比分网-中国电竞赛事及体育赛事平台

分享

Jacoco原理簡述

 香光莊 2025-11-25 發(fā)布于福建

Yvan

讀完需要

1
分鐘

速讀僅需 1 分鐘

1

   

why

  • 面試可能會問到,Jacoco 的原理是什么呢,可以簡述一下嗎?

  • 一個優(yōu)秀的測試工程師,應(yīng)該熟悉常用工具的優(yōu)缺點,適用環(huán)境及其原理。

2

   

what

Jacoco 原理

圖片

3

   

how

原理圖,標(biāo)注為Jacoco特色功能:

圖片

圖片

JaCoCo 在 Byte Code 時使用的 ASM 技術(shù)修改字節(jié)碼方法,可以修改 Jar 文件、class 文件字節(jié)碼文件

  • on-the-fly:JVM 通過-javaagent 參數(shù)指定 jar 文件啟動 Instrumentation 注入的代理程序,并在 Class Loader 裝載前將統(tǒng)計代碼插入 class,覆蓋率分析可以在運行測試中完成

  • offline:測試前先插樁,然后生成插樁后的 class 或 jar 包,測試此 class 和 jar 包,會生成覆蓋率分析信息,并生成報告

字節(jié)碼注入

圖片

  • JaCoCo 是根據(jù)控制流 Type 來采用不同的探針插入策略的

圖片

具體插入策略如圖:

圖片

注意:探針實際為布爾數(shù)組。

4

   

how good

JaCoCo 優(yōu)勢:

  • 支持分支覆蓋、Agent 模式

  • 社區(qū)活躍,不斷維護(hù)更新

On-the-fly 優(yōu)劣:

  • 方便簡單,無需提前字節(jié)碼插樁,無需考慮 classpath 的設(shè)置

  • 需要更多資源,需要 1.5JVM

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多