网易首页 > 网易号 > 正文 申请入驻

Java代码覆盖率工具Jacoco介绍

0
分享至

Jacoco是一个开源的覆盖率工具。Jacoco可以嵌入到Ant 、Maven中,并提供了EclEmma Eclipse插件,也可以使用JavaAgent技术监控Java程序。很多第三方的工具提供了对Jacoco的集成,如Jenkins。

对于Java来说,我们常用的代码覆盖率工具就是Jacoco,Java code coverage 各取了两个字母,所以叫Jacoco。我几乎对所有平台的代码覆盖率都有涉及,比如java的、python的、go的、php的、c++、.net...基本上全都做过,一般的测试覆盖率的工具我都用过,也都大致的看过一些他们的源码和改造,但是没有任何一款代码覆盖率统计工具会比java里的Jacoco更加强大,它几乎是最好用的。

它来源于很老的一个EclEmma,有老的技术人员可能知道这个工具。最早的是Eclipse的一个插件,专门来统计代码覆盖率的,后来在EclEmma的技术之上重新二次开发和封装了Jacoco这个工具。它的官网也是和EclEmma在一起的。

他可以通过多种工具去进行集成和驱动。java作为我们第一门语言的朋友都知道,java中几个重要的构建工具中,其中两种最重要的、最常用的就是Ant 和Maven。虽然现在有的朋友可能Ant用的比较少,但是它依然是一个经典的存在。

我们在这里给不熟悉的同学简单介绍一下,用简单的一句话解释:Ant 和Maven就是把你的java代码打成可执行包的工具,我们也叫做build工具,当然还有一些辅助的功能。也就是在说在我们打包的工具里面是可以嵌入Jacoco这个工具的。

Jacoco的原理


对 Java 字节码进行插桩,On-The-Fly 和 Offine 两种方式。执行测试用例,收集程序执行轨迹信息,将其 dump 到内存。数据处理器结合程序执行轨迹信息和代码结构信息分析生成代码覆盖率报告。将代码覆盖率报告图形化展示出来,如 html、xml 等文件格式。

接下来我们了解一下Jacoco的基本原理,它的使用是一种动态插桩和静态插桩混用的一种原理。所谓插桩就是在你编译的文件里面去插入Jacoco的探针。在代码里面插入一些探针,一些监控,不管你是以单元测试还是以什么测试的身份去跑这个代码。

这行代码跑完之后,就会被我的探针记录下来,最终就会被收集展示出来,我的代码覆盖情况基本就被展示出来了。这就是它基本的一个原理。

它的第一个步骤是在你的代码里进行插桩,不管是On-The-Fly模式还是Offine 模式,插桩之后,它会监控代码的使用情况。当你的代码执行完毕之后,测试运行完毕之后它会把这些信息收集在内存里面,我们管它叫 dump 。

这个词很多朋友应该对它有了解,因为只要是测性能,都会遇到这个词。保存到 dump内存中去之后,我们把它下载下来,就有了插桩原始的统计数据,然后我们再用这些数据去生成你想要的html或xml的报告。


作为测试人员我们不必去了解它太深层的原理,但是这个流程我们要记住,因为我们后面会用到。

后面的文章我们会带大家一起通过一个实操案例了解了解一下Jacoco的具体使用方法和使用流程,欢迎大家继续关注。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
油价“一夜骤降”!6月1日调价后92/95号汽油价格,猪价如何

油价“一夜骤降”!6月1日调价后92/95号汽油价格,猪价如何

猪友巴巴
2024-05-31 13:57:29
上海一老汉,利用风水布局,让三十多名妇女主动爱上自己

上海一老汉,利用风水布局,让三十多名妇女主动爱上自己

神奇的锤子
2024-05-17 21:20:43
网传浙江一KTV查出158个艾滋病的小姐?警方回应来了

网传浙江一KTV查出158个艾滋病的小姐?警方回应来了

网易号社区管理员
2024-05-31 12:20:02
沙王冠巨大争议!新月3分钟连吃两红,恶人遭惩罚,比分被追平

沙王冠巨大争议!新月3分钟连吃两红,恶人遭惩罚,比分被追平

奥拜尔
2024-06-01 04:08:19
无药可救!*ST公司大股东反对重整,铁了心期待退市吗?

无药可救!*ST公司大股东反对重整,铁了心期待退市吗?

股海风云大作手
2024-05-31 20:07:07
省政府秘书长任上被查!半个月前还在参加督导

省政府秘书长任上被查!半个月前还在参加督导

政知新媒体
2024-05-31 20:51:39
C罗哭成泪人!从世界杯到沙王冠,两年败给同一人,已3年无冠

C罗哭成泪人!从世界杯到沙王冠,两年败给同一人,已3年无冠

奥拜尔
2024-06-01 05:35:30
一母亲炫耀两儿子考上重庆四金刚,被举报取消了资格,40W打水漂

一母亲炫耀两儿子考上重庆四金刚,被举报取消了资格,40W打水漂

东东趣谈
2024-05-31 19:40:38
实探关联滁河污染的花园水库:水体发黑气味刺鼻,多台机器正在作业

实探关联滁河污染的花园水库:水体发黑气味刺鼻,多台机器正在作业

极目新闻
2024-05-31 21:45:30
丹麦批准了:乌可用所获F-16攻击俄境内目标

丹麦批准了:乌可用所获F-16攻击俄境内目标

参考消息
2024-05-31 10:42:11
失业潮还在持续:这四大重灾区行业你在不在

失业潮还在持续:这四大重灾区行业你在不在

侃故事的阿庆
2024-06-01 00:30:50
离谱!女子应聘董事长秘书,月薪45000,被要求解决老板生理需求

离谱!女子应聘董事长秘书,月薪45000,被要求解决老板生理需求

看晓天下事
2024-05-30 18:29:45
无布朗尼+崔永熙!93名球员宣布退出NBA选秀

无布朗尼+崔永熙!93名球员宣布退出NBA选秀

直播吧
2024-05-31 07:52:09
异性交往中,女人若对你坦白以下几个隐私,说明爱你入骨了

异性交往中,女人若对你坦白以下几个隐私,说明爱你入骨了

落叶玫瑰
2024-05-31 13:40:18
一女子正在做饭,儿子指着电视大喊:妈妈快来看,弟弟少半个脑袋

一女子正在做饭,儿子指着电视大喊:妈妈快来看,弟弟少半个脑袋

华人星光
2024-05-31 16:20:07
我国跌为美国第四大进口国,对美出口1519亿美元。前三名是这三国

我国跌为美国第四大进口国,对美出口1519亿美元。前三名是这三国

山股长
2024-05-31 09:10:02
8岁伊朗女孩因为长相太美,父亲不放心辞职当保镖,如今长成这般

8岁伊朗女孩因为长相太美,父亲不放心辞职当保镖,如今长成这般

荷兰豆爱健康
2024-05-29 16:13:42
美军司令看完解放军围台,大陆真实的战备水平,让美军大感意外

美军司令看完解放军围台,大陆真实的战备水平,让美军大感意外

莫将离
2024-05-31 23:28:47
黄永胜证实:徐向前曾被俘,揭秘真实经历!

黄永胜证实:徐向前曾被俘,揭秘真实经历!

阅史明今
2024-05-31 21:02:36
巴黎世家&支付宝联名T恤高达4700元 网友:最贵工服

巴黎世家&支付宝联名T恤高达4700元 网友:最贵工服

手机中国
2024-05-31 11:49:11
2024-06-01 07:54:44
道普云
道普云
深耕软测行业二十年。可帮助企业和组织建立软件测试体系,提供软件测试cnas/cma认证咨询服务。
136文章数 2关注度
往期回顾 全部

科技要闻

业务不卖了,字节跳动重新做游戏

头条要闻

媒体:中美防长"香会"见面 两个关键细节最值得说

头条要闻

媒体:中美防长"香会"见面 两个关键细节最值得说

体育要闻

欧文:当老二怎么了?硬就行了!

娱乐要闻

白玉兰提名:胡歌、范伟争视帝

财经要闻

证监会:对恒大地产罚款41.75亿

汽车要闻

外观内饰升级/六项权益 全新哈弗H6开启预售

态度原创

家居
数码
时尚
公开课
军事航空

家居要闻

风雅自来 中式的和谐平衡

数码要闻

真正的咸鱼翻身!两年前的骁龙6 Gen 1怎么就翻红了

今年夏天,穿得越放松越时髦!

公开课

近视只是视力差?小心并发症

军事要闻

胡塞武装称已袭击美国航母 美官员称未发现航母遭袭

无障碍浏览 进入关怀版