参考链接:https://www.jianshu.com/p/16a8ce689d60
一,使用jacoco的原因:
不需要插桩,性能比较好
二、下载jacoco文件,并配置java启动项。
将jacoco 解压后的文件,放到代码所在服务器中,随便放一个位置就行,
找到服务的启动项,如下面
JAR_PATH=/usr/data/apps/ca-tp-customs-provider
JAR_NAME=ca-tp-customs-provider-1.0.0-SNAPSHOT.jar
JAR_NAME=$JAR_NAME
JAR_PATH=$JAR_PATH
JAVA_MEM_OPTS=" -server -Xmx1024m -Xms1024m -Xmn128m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=256m -Xss256k -XX:+DisableExplicitGC -XX:+UseG1GC -Dcom.sun.management.jmxremote.port=8999 -Djava.rmi.server.hostname=111.230.199.202 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false "
JACOCO_OPTS="-javaagent:/data/jacoco/lib/jacocoagent.jar=includes=com.zhongfei.*,output=tcpserver,port=8044,address=172.18.0.6 -noverify"
PINPOINT_AGENT_OPTS=" -javaagent:/data/pinpoint-agent/pinpoint-bootstrap-1.8.2.jar -Dpinpoint.agentId=customs_6 -Dpinpoint.applicationName=customs_6"
nohup /usr/local/jdk1.8.0_162/bin/java -jar \$JACOCO_OPTS \$JAVA_MEM_OPTS \$JAR_PATH/\$JAR_NAME --spring.profiles.active=perform > stdout.log 2>&1 &
要启动ca-tp-customs-provider-1.0.0-SNAPSHOT.jar程序,配置了一个JACOCO_OPTS。然后将JACOCO_OPTS 放到了启动命令中。
启动后:

那就说明启动成功了。
参数解释:
includes=com.zhongfei.* 表示会统计包含了com.zhongfei 中的类,方法等。这就说明,只会去判断自己写的代码的覆盖程度
output=tcpserver 表示可以在不停止应用服务的情况下下载覆盖率文件。以及可以让别的服务通过tcp方式来获取代码覆盖率统计
port=8044,address=172.18.0.6 表示对外的接口
-noverify 据说是java8 必须要加的参数
三、将jacoco 的统计通过dump 方式,进行统计。
想要统计要借助工具ant
第一步:下载ant ,下载后放在上面服务所在的服务器中。
第二步:将ant 文件的*/bin/ant 更改为可执行权限。
第三步:随便找一个位置。编写一个build.xml 文件:
<?xml version="1.0" encoding="UTF-8"?> <project name="Jacoco" xmlns:jacoco="antlib:org.jacoco.ant" default="jacoco"> <property name="jacocoantPath" value="/data/jacoco/lib/jacocoant.jar"/> <property name="integrationJacocoexecPath" value="/usr/data/apps/ca-tp-customs-provider/jacoco-integration.exec"/> <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml"> <classpath path="${jacocoantPath}" /> </taskdef> <target name="dump"> <jacoco:dump address="172.18.0.19" port="8044" reset="true" destfile="${integrationJacocoexecPath}" append="false"/> </target> </project> ~
解释:
jacocoantPath: 指定前面下载的jacoco包中jacocoant.jar的路径
integrationJacocoexecPath 指定执行dump 命令后,生成的文件放在那儿,注意,格式一定是.exec
address,port 是上面第二步配置的,与其一样就行了。
四、生成exec文件
直接执行: */lib/ant dump 或者 */lib/ant dump -buildfile [路径]/build.xml。
然后就会根据【三】里面设置的integrationJacocoexecPath生成一个exec文件。
五、 查看exec文件
想直接查看exec文件,对不起做不到。那要如何才能查看到呢,这就需要借助jenkins 了。
浙公网安备 33010602011771号