【使用jacoco验证接口自动化代码覆盖率】超详细!!!

jacoco验证接口自动化代码覆盖率

jacoco下载

官方下载地址:https://central.sonatype.com/?smo=true
csdn下载地址:https://download.csdn.net/download/m0_43550804/88228839

jacoco工具主要包含:

jacocoagent.jar,jacocoant.jar,jacococli.jar

jacocoagent.jar是一个代理程序,用来搜集执行信息,在请求或者JVM退出的时候生成代码覆盖率数据

jacocoant.jar是在ant项目任务中加入jacoco,在启动Java程序,记录数据并能创建覆盖率报告,通过coverage, agent, dump和 merge。report等任务会创建不同格式的报告

jacococli.jar提供了一些命令行接口,生成exec文件、合并或生成html报告等

准备工作:

1、将jacoco下载并解压
2、被测项目工程打jar包,可找开发打jar包
3、下载项目工程包,因为在将覆盖率文件转换成html文件时需要用到,需要项目里这两个目录\target\classes(这个目录需要项目编译后才会生成)、\src\main\java。

开始执行

一、本地运行jar包(运行时jacoco自动插桩)

java -javaagent:D:\jacoco\test\jacoco-0.8.8\lib\jacocoagent.jar=includes=*,output=tcpserver,port=6301,address=localhost,append=false -jar D:\jacoco\test\services-edu-web.jar

参数解读:
–includes:类名,比如【com.*】代表包含com开头的类名
–classdumpdir:类文件存储的目录
–output:tcpserver方式,通过address和端口获取数据
–append:true是执行数据文件已经存在,则覆盖数据将附加到现有文件
–address:tcpserver的访问地址

注:-address设置tcpserver的访问地址。可以配置127.0.0.1,也可以配置为实际访问ip
配置为127.0.0.1的时候,dump数据只能在这台服务器上进行dump,就不能通过远程方式dump数据。
配置为实际的ip地址的时候,就可以在任意一台机器上(前提是ip要通,不通都白瞎),通过ant xml或者api方式dump数据。

二、生成dump

java -jar D:\jacoco\test\jacoco-0.8.8\lib\jacococli.jar dump --address localhost --port 6301 --destfile D:\jacoco\test\jacoco.exec --reset

执行后,将在目录下生成指令中指定的 exec 文件 jacoco.exec
在这里插入图片描述

注意!生成文件之前,先去执行接口自动化用例!

参数解读:
–reset: 生成覆盖率数据后,重置之前的统计,想要重新获取统计数据,需要删除之前生成的exec文件
–address: 运行jacocoagent.jar的主机IP
–port: 运行jacocoagent.jar的主机监控端口

三、将生成的文件转换成html

java -jar D:\jacoco\test\jacoco-0.8.8\lib\jacococli.jar report D:\jacoco\test\jacoco.exec --classfiles  D:\jacoco\services-edu-web\target\classes --sourcefiles D:\jacoco\services-edu-web\src\main\java --html D:\jacoco\test\report --name 实训平台

在指定文件生成报告
在这里插入图片描述

参数解读:
–name:html中的名称
–classfiles: 编译文件存放目录,maven 项目是target下
–sourcefiles: 原文件存放目录,maven项目是 src\main\java
-sourcefiles可以不传,不传的话,覆盖率报告到文件级的展示,再细,需要具体代码和行数就需要传sourcefiles
生成报告后,点击进入index.html可查看
在这里插入图片描述

结尾

通过以上步骤,大家就可以完成对自身接口自动化覆盖率的度量。
以上方法只是纯手工操作,通过以上原理,使用shell脚本可通过Jenkins流水线执行。
使用Jenkins的方式后续补充,此处一方面用于个人备忘,另一方面希望给大家带来一些帮助,助于大家理解精准测试中-接口自动化覆盖率方案的原理。

猜你喜欢

转载自blog.csdn.net/m0_43550804/article/details/129585730