如何使用Jacoco远程统计tomcat服务的代码覆盖率

如何使用Jacoco远程统计tomcat服务的代码覆盖率,第1张

背景


增量代码扫描数据作为上线准入的重要依据,目前所有测试环境执行的测试均有覆盖率统计,但是部分需求或服务更加适合使用单测进行验证,也有部分RD有单测的好习惯。单测覆盖率的缺失无法通过覆盖率分析补充case也对上线准入评估造成了一定的困扰。因此,我们将单测的增量代码覆盖率融合至测试环境覆盖率中,解决以上问题。

整体方案


用例平台


1、持续集成平台将工程名称,分支名称,git地址信息传给单测平台,平台根据这些信息下载源码

2、更改源码里的pomxml 文件。引用插件 maven-surefire-report-plugin

插件的特点:

结果:


打开surefire-reporthtm 可以查看执行case数量,执行通过率,执行失败的具体方法以及失败原因。

3、用jacoco生成单元测试覆盖率

在执行mvn命令时,加上“orgjacoco:jacoco-maven-plugin:prepare-agent”参数即可。


其中,jacoco-maven-plugin后面跟的是jacoco的版本;-Dmaventestfailureignore=true建议加上,否则如果单元测试失败,就会直接中断,不会产生exec文件。


执行以上命令后,会在当前目录下的target目录产生一个jacocoexec文件,该文件就是覆盖率的文件:



4、生成的jacocoexec文件传给覆盖率统计系统。

覆盖率平台


1、增加覆盖率统计任务

用例平台收到执行单测任务时,会调用覆盖率平台创建覆盖率任务接口,将源码地址,jar包的ftp地址, 以及代码分支等数据传递给覆盖率平台,覆盖率平台建立覆盖率任务并做一些提前准备工作:下载源 码、jar包以及进行codediff,并将diff结果存到数据库。


2、统计覆盖率

回顾一下之前 on-the-fly方式的差异代码覆盖率方案 ,代码执行轨迹是当测试人员点击覆盖率按钮时,实时从测试服务器上获取的。


从图中可以看到,如果我们把测试服务器的部分任务由用例平台来完成,就可以在基本上不变动代码的情况下完成单测增量代码覆盖率的统计。

主要逻辑:




欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13483053.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-16
下一篇 2023-08-16

发表评论

登录后才能评论

评论列表(0条)

保存