接口自动化接入jacoco

一、准备工作

  1. 下载jacoco:https://www.eclemma.org/jacoco/
  2. 下载ant:https://ant.apache.org/index.htmls

二、配置ant环境变量

本人mac环境,设置ant环境变量

#打开变量文件

vim ~/.bash_profile

#增加ant环境变量
export ANT_HOME=/Users/muxixi/jacoco/apache-ant-1.10.13
export PATH=${PATH}:${ANT_HOME}/bin

#激活

source ~/.bash_profile

 三、配置build.xml

创建build.xml文件,放到ant的bin文件夹下,具体配置方式如下:

<?xml version="1.0" encoding="UTF-8"?>
<project name="test" xmlns:jacoco="antlib:org.jacoco.ant" >
    <!--jacoco路径-->
  <property name="jacocoantPath" value="xxx/jacocoant.jar"/>
  <!-- jacoco.exe 路径-->
  <property name="jacocoexecPath" value="xxx/jacoco.exe"/>
    <!--覆盖率报告的路径-->
  <property name="reportfolderPath" value="xxx/report"/>
  <!--启动的服务ip地址-->
  <property name="server_ip" value="127.0.0.1"/>
  <!--端口号-->
  <property name="server_port" value="6300"/>
  <!--源代码-->   
  <property name="src_path" value="xxx/src/main/java/" />   

  <!--.class文件-->
  <property name="class_path" value="xxx/target/classes"/>


  <!--让ant知道去哪儿找Jacoco-->
  <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
      <classpath path="${jacocoantPath}" />
  </taskdef>

  <!--dump任务:
      根据前面配置的ip地址,和端口号,
      访问目标tomcat服务,并生成.exec文件。-->

  <target name="dump">
      <jacoco:dump address="${server_ip}" reset="true" destfile="${jacocoexecPath}" port="${server_port}" append="false"/>
  </target>

   <!--jacoco任务:
      根据前面配置的源代码和.class路径,
      根据dump后,生成的.exec文件,生成最终的html覆盖率报告。-->
  <target name="report">
      <delete dir="${reportfolderPath}" />
      <mkdir dir="${reportfolderPath}" />

      <jacoco:report>
          <executiondata>
              <file file="${jacocoexecPath}" />
          </executiondata>

          <structure name="JaCoCo Report">
              <group name="test">          
                  <classfiles>
                      <fileset dir="${class_path}" />
                  </classfiles>
                  <sourcefiles encoding="utf-8">
                      <fileset dir="${src_path}" />
                  </sourcefiles>
              </group>
          </structure>
          <html destdir="${reportfolderPath}" encoding="utf-8" />        
      </jacoco:report>
  </target>
</project>

四、启动服务

java -javaagent:xxx/lib/jacocoagent.jar=includes=*,output=tcpserver,port=6300,address=127.0.0.1 \
-jar xxx/target/xxx.jar

来看一下每个字端的含义:

  1. includes:分析包含的类名列表
  2. output:覆盖率数据的输出方法,
    • tcpserver:代理侦听由address和 port属性指定的 TCP 端口上的传入连接。执行数据写入此 TCP 连接。
  3. xxx/target/xxx.jar:服务打的jar包

五、访问服务接口

http://127.0.0.1:8080/xxx

六、生成覆盖率

  1. ant dump:报告的数据成功生成
  2. ant report:生成报告
posted @ 2023-08-19 18:46  凌语小菜鸡  阅读(112)  评论(0)    收藏  举报