参考链接: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 了。

 

posted on 2019-07-01 17:41  进_进  阅读(471)  评论(0)    收藏  举报