Jacoco 代码覆盖率统计工具--tcpserver

jacoco增量覆盖率平台开发 先聊聊做这个平台的意义,从项目管理角度来说,测试说项目测试完成,该如何证明呢?一般情况下我们进行验收时没什么问题就算完成了,但是实际上测试很多情况并没有考虑到。所以该平台可以反哺测试的测试用例,让平台质量把控上升一个层次,其次可以作为产品验收的标准。覆盖率至少达到百分90才可以发布到生产。为什么时百分90不是百分百,作为开发人员有很多时候会写一些防止报错的异常代码,这部分代码可能正常情况下是永远执行不到的。 阅读详情


jacoco 是一款开源工具,用来统计代码覆盖率。提供了maven插件、ant Tasks、agent代理等使用方法。

三种使用方法

  1. ant任务方式不常用,且需要配置环境,所以未考虑这种方法。
  2. maven插件
    参考 https://mp.youkuaiyun.com/postedit/103148884
    这种方式主要是在maven 生命周期中统计代码覆盖率,主要用于单元测试。
  3. jacoco agent
    这种方式可以在程序运行时,进行统计代码覆盖率。接口测试、自动化测试等都可使用。目前我的需求是统计某个服务的代码覆盖率,测试是通过接口测试完成,服务与测试代码是分离的,所以主要使用这种方式。

jacoco agent

启动服务时,在虚拟机参数加上jacoco agent 代理,这样在服务中代码被执行时,jacoco可以统计并记录。测试结束后,可以把记录写入exec文件中。通过exec文件就可以查看覆盖率。

1、下载jacoco agent

https://www.eclemma.org/jacoco/
在这里插入图片描述
下载解压后文件如下
jacocoagent.jar 用来监听执行代码
jacococli.jar 提供了一些命令行接口,可以用来生成exec文件、html报告等。
在这里插入图片描述

2、启动服务并带vm参数

vm参数:

-javaagent:E:\software\jacoco-0.8.5\lib\jacocoagent.jar=classdumpdir=E:\software\jacoco\class,output=tcpserver,address=localhost,includes=com.*

可以用命令行执行java -javaagent:jacocoagent.jar=includes=com.*,classdumpdir=classes,output=tcpserver,port=6300,address=127.0.0.1 -jar jacocoDemo.jar
也可以在开发工具中执行参数中配置
在这里插入图片描述
jacocoagent 命令参数参考:https://www.jacoco.org/jacoco/trunk/doc/agent.html

3、执行测试后生成 exec 文件

进入cmd 窗口
执行命令java -jar E:\software\jacoco-0.8.5\lib\jacococli.jar dump --address 192.168.73.60 --port 6300 --destfile E:\software\jacoco\jacoco.exec
在这里插入图片描述
在destfile指定路径下生成文件
在这里插入图片描述

4、生成HTML报告

进入cmd 窗口
执行命令java -jar E:\software\jacoco-0.8.5\lib\jacococli.jar report E:\software\jacoco\jacoco.exec --classfiles D:\sssss\service\target --sourcefiles D:\sssss\service\src\main\java --html E:\software\jacoco\report
classfiles 编译文件存放目录,maven 项目是target下
sourcefiles 原文件存放目录,maven项目是 src\main\java
生成报告,进入index.html可查看
在这里插入图片描述
在这里插入图片描述

jacoco 增量方案使用说明书 鉴于上篇jacoco增量覆盖率实践实现了差异代码获取和jaocco二开后,很多咨询我的是测试的小伙伴,对java可能不太熟悉,想要直接使用又赶脚稍许迷茫,所以又写下这边文章来帮助迷茫中的小伙伴拉 组件说明 首先说明一下实现此增量方案所依赖的组件 原生jacoco知识 code-diff服务 jacoco二开cli包 首先你需要了解jacoco的实现步骤,知道单元测试覆盖率和功能测试覆盖率,而我们通常讲的增量覆盖率一般讲的也是功能测试覆盖率 其实单元测试和功能测试其实分别对应jacoco的o 阅读详情

相关推荐

SpringBoot接入JaCoCo实践

SpringBoot接入JaCoCo实践

qq_16422103的博客 2779

jacoco 学习总结

jacoco 覆盖率

weixin_38364835的博客 1935

jacocoagent.jar

jacocoagent最新版0.8.6下载

Jacoco 测试覆盖率探索

Java 代码覆盖率分析 精准测试

fiskeryang的专栏 1975

Altium Concord Pro 的应用范围,安装,和使用范围

Altium Concord Pro 的应用范围,安装,和使用范围。保证满足两者软件的最低安装要求。 Altium Concord Pro 是配合Digapcb,和MCAD,Altium 和相应机械设计软件的基础和交换桥梁

hanzhaos的博客 1122

Windows 11登录界面密码框消失Bug解析与解决方案

Windows操作系统登录认证机制是系统安全的第一道防线,其图形界面由桌面窗口管理器(DWM)负责渲染。当UI元素渲染异常时,会导致密码输入框等关键组件不可见。这类图形子系统故障通常源于驱动兼容性或主题服务冲突,在Windows 11最新累积更新后尤为常见。通过系统文件检查(sfc)、注册表修复或创建新用户等工程实践方法可有效解决问题。对于企业IT环境,建议采用PIN码或生物识别等替代认证方案,同时定期执行磁盘清理和系统健康检查等Windows维护操作,确保认证服务稳定运行。

weixin_33806859的博客 622

Java代码覆盖率工具Jacoco上手指引

JaCoCo是面向Java的开源代码覆盖率工具,JaCoCo以Java代理模式运行,它负责在运行测试时检测字节码。JaCoCo会深入研究每个指令,并显示每个测试过程中要执行的行。为了收集覆盖率数据,JaCoCo使用ASM即时进行代码检测,并在此过程中从JVM Tool Interface接收事件,最终生成代码覆盖率报告。

summer07071126的博客 2695

GD32模拟IIC读写DVC1124

GD32模拟IIC读写集澈AFE芯片DVC1124

ponyma_的博客 1227

用jacoco统计代码覆盖率:不依赖ant的解决方案

参考网上的教程,用jacoco统计代码覆盖率,需要用到jacoco和ant,我原来的计划也是jacoco和ant的方案,后来研究发现其实不用ant也可以实现,省去了ant的安装和配置,更加灵活方便。 相关软件下载: Sudo Wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/ap......

boweiqiang的博客 2528

单片机入门说明书:从本质到架构,一文看透MCU核心原理

其实你每天用的洗衣机、刷的智能门锁、开的汽车里,都藏着它的身影。相当于工厂里的“运输轨道”,CPU算出的结果通过总线送到RAM存储,ROM里的程序通过总线传给CPU执行,外设的信号通过总线交给CPU处理,整个过程每秒能重复上百万次,确保各模块协同高效。高端单片机(比如STM32F4系列)还会配备DMA(直接存储器访问)单元,相当于“专用传送带”——不需要CPU干预,就能直接让外设和RAM之间传输数据(比如让ADC采集的温度数据直接存进RAM),大大降低CPU负担,让CPU能专注处理更重要的任务。

IAMIF12的博客 1043

【Unity】Unity 跨平台及编译过程

早期的Unity跨平台是基于MONO运行时的,又通过CLS实现了跨语言。其基本思路是将各个版本的语言统一编译成CIL语言,在不同平台运行时使用CLR进行解释。有点类似于Java的jdk和jvm。 CLS(Common Language System)通用语言规范:CLS是一种规范,类似于schema,当文件被指定遵守CLS规范后,在某语言中写出不符合通用规范的代码后将被警告或报错。 MONO是一个开源工程,其中包含C#编译器,CLR运行时,以及一组类库。该工程常见了一系列符合ECMA标准的.NET工具,MO

一个普普通通的游戏开发者 7242

软件测试 | 常见覆盖率统计工具

这方面的知识是 java 领域的高端 进阶知识,限于篇幅,我们只讲解下大概的原理,完整内容请参考 VM 虚拟机系列的书籍,以及 newrelic 早年发布的若干代码插桩的资料。毕竟覆盖率的统计,并 不是只是简单的覆盖率数据本身的指标高低。得益于 jacoco 的设计理念,以及良好的 api 设计,它可以轻松的与已有的工具集成,甚至进行平台 化。emma 与 cobertura 是为单元测试而设计的覆盖率统计,jacoco 与 emma 同属于一家公司,但是是为了 更广泛的覆盖率统计而设计的工具。

慕漓的博客 753

Python爬虫实战:模拟登录知乎 – 通过加密参数和验证码实现自动登录

通过本篇博客的讲解,我们学习了如何通过 POST请求 和 验证码识别,模拟登录知乎并爬取用户信息、问题数据。随着爬虫技术的发展,面对更复杂的反爬虫机制,我们可以不断调整策略,以绕过这些防护,实现数据的自动化抓取。

2201_76125261的博客 731

jacoco收集探针结果时机_Jacoco覆盖率使用总结

tags: Java前阵子使用 Jacoco 进行代码覆盖率测试,由于项目特殊遇到了不少坑,网上搜到的教程感觉也不够全面,特此记录。所用到的工具软件的版本信息如下Jacoco 版本:0.8.0Eclemma 版本:3.0.0Eclipse 版本:4.3JDK 版本:1.8ANT 版本:1.91. 工具介绍JaCoCo,即 Java Code Coverage,是一款开源的 Java 代码覆盖率统计...

weixin_36109375的博客 604

一周一个Unity小游戏2D反弹球游戏 - 球反弹的方向

本文将实现当球在球板上反弹时,会根据球板移动的方向来给球施加反弹的力,例如当球板往左移动时反弹球,则球应向左上方反弹,若球板往右移动时反弹球,则球应向右上方反弹。

Giver的博客 752

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

远程Tomcat应用接入JaCoCo:搞定代码覆盖率统计全流程

代码覆盖率是衡量测试充分性的重要指标,但本地IDE的覆盖率报告与远程JVM环境完全割裂,导致部署到Tomcat后难以获取真实数据。JaCoCo作为Java生态主流的覆盖率工具,通过字节码插桩技术,在JVM加载类时动态注入探针,记录运行时执行痕迹。其agent模式可随远程Tomcat启动,配合cli工具实现数据远程拉取(dump)、合并(merge)与报告生成(report),从而打通跨JVM、跨机器、跨环境的统计链路。本文从JaCoCo的工作原理出发,详解远程Tomcat接入的完整配置过程,涵盖setenv

weixin_28836507的博客 305

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

软件测试/测试开发丨只懂黑盒测试也能学会的代码覆盖率及精准化测试

测试覆盖率是对测试完成程度的度量。它通常依据某种覆盖准则来对测试用例执行情况进行衡量,以判断测试执行得是否充分。——出自《计算机科学技术名词 》第三版。

Ceshiren666的博客 213

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【测试】代码覆盖率工具 JaCoCo

JaCoCo 是面向 Java 的开源代码覆盖率工具,JaCoCo 以 Java 代理模式运行,它负责在运行测试时检测字节码。JaCoCo 会深入研究每个指令,并显示每个测试过程中要执行的行。为了收集覆盖率数据,JaCoCo 使用 ASM 即时进行代码检测,并在此过程中从 JVM Tool Interface 接收事件,最终生成代码覆盖率报告。

Data · Model · Agent · Repeat 2224

测试左移实践 -Jacoco 代码覆盖率统计详细讲解

JaCoCo 支持生成行覆盖率、分支覆盖率等详细的代码覆盖率报告,并可通过图形化形式展示,便于开发者分析哪些代码尚未被测试覆盖。具体来说,JaCoCo 在类加载前或类加载时对 Java 字节码插入统计指令,统计指令会记录方法调用、分支执行和代码行执行的情况,从而计算代码覆盖率。当被插桩的代码被执行时,这些计数器会增加,表示代码行或分支已被执行。是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

2301_78276982的博客 762

代码覆盖率提升实践:远程Tomcat下Jacoco采集与报告详解

代码覆盖率是衡量测试充分性的核心指标,但它并非简单的行数统计,而是对指令、分支、方法等多维度的真实执行度量。通过Java Agent插桩机制,可以在不修改业务代码的前提下,运行时记录程序实际执行的路径,为质量评估提供客观数据。在分布式部署、远程Tomcat服务的场景中,如何准确采集多实例的执行数据并生成有效报告,成为提升覆盖率的关键瓶颈。本文从Jacoco的接入配置、TCP连接与dump操作、多实例合并等细节出发,结合报告反推测试空档与增量覆盖率门槛,完整呈现了一套从数据采集到覆盖率落地的工程实践,帮助团队

weixin_33913332的博客 316

远程Tomcat部署下的JaCoCo覆盖率统计与提升实战

代码覆盖率是衡量测试充分性的重要指标,其本质是通过字节码插桩技术记录程序执行轨迹,帮助团队定位从未被触达的代码盲区。JaCoCo作为Java生态最主流的覆盖率工具,在本地Spring Boot场景配置简单,但在远程Tomcat部署环境下,由于类加载机制、网络策略和进程管理方式不同,常面临agent加载失败、数据采集困难、报告生成失真等挑战。掌握远程环境下的JaCoCo接入、数据dump与合并、作用域排除及增量覆盖率分析,是提升测试有效性的关键。从自动化测试到手工探索式测试,从单轮采集到多轮合并,合理配置Ja

weixin_42554151的博客 181

jacoco初探

# 背景 集团的代码覆盖率平台因为网络问题无法使用,只能自己研究下。 覆盖率是衡量自动化用例效果产品的一个指标,但只是一个辅助指标,覆盖率高并不意味着质量好,但覆盖率低却能说明一些问题, # 对比 覆盖率工具的对比,直接引用资料: 有赞团队的博客: https://tech.youzan.com/code-coverage/ # 理解 ...

weixin_34409703的博客 824

零代码实现JUnit4+Jacoco多模块项目可视化测试覆盖率方案

代码覆盖率是衡量软件测试充分性的重要指标,它通过分析测试执行时代码的覆盖情况,帮助开发者识别未被测试的代码区域。其核心原理是在代码执行时进行插桩,记录哪些行、分支或方法被调用。这项技术的价值在于为代码质量提供客观度量,辅助团队识别测试盲区,提升软件可靠性。在Java开发领域,单元测试与集成测试是确保代码质量的关键环节,而JUnit作为广泛使用的测试框架,配合Jacoco覆盖率工具,构成了标准的质量保障组合。针对多模块项目,如何统一收集和展示各模块的覆盖率数据是常见挑战。本文聚焦于解决这一痛点,通过配置Jac

weixin_30420305的博客 379
上一篇: git 报错 Authentication failed for
下一篇: Python 删除文件夹或文件
codingOnMyWay
博客等级 码龄7年 1粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值