一.下载jacoco, ant工具

jacoco: http://www.eclemma.org/jacoco/;

ant: http://ant.apache.org 并添加到环境变量;

二.不停jvm, dump出覆盖率数据

在部署的tomcat服务中,/bin/catalina.sh中JAVA_OPTS参数值添加:

-javaagent:/data1/jacoco/lib/jacocoagent.jar=includes=*,output=tcpser
ver,port=2014,address=10.210.230.26

其中:/data1/jacoco/lib/jacocoagent.jar为安装jacoco的jacocoagent.jar包绝对路径;output覆盖率数据输出的形式,有file, tcpserver, tcpclient, 默认是file,file是在jvm停掉时才将覆盖率数据dump出来;address和port可以提供client访问,并dump出覆盖率数据文件, 在build.xml会使用。

启动tomcat服务,sh /bin/startup.sh;  假设tomcat服务为10.210.230.26:8074

三.使用自动化测试跑该tomcat服务

四.ant的build.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <project name="testCodeCoveage" xmlns:jacoco="antlib:org.jacoco.ant" default="report">
  3. <property name="result.dir" location="/data1/hugang/tomcat/apache-tomcat-8.0.36/webapps/ROOT/WEB-INF" />
  4. <property name="result.classes.dir" location="${result.dir}/classes" />
  5. <property name="result.report.dir" location="/data1/hugang/jacocoresult/" />
  6. <property name="result.exec.file" location="./remote.exec" />
  7. <property name="resource.code" location="/data1/hugang/jacoco/sourcecode/apiservice-java-strategyapi/src/main/java/" />
  8. <!-- Import JaCoCo Ant tasks, taskdef第三方target -->
  9. <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
  10. <classpath path="/data1/hugang/jacoco/lib/jacocoant.jar" />
  11. </taskdef>
  12. <!--tomcat下bin/catalina.sh在JAVA_OPTS参数新加的
  13. -javaagent:/data1/jacoco/lib/jacocoagent.jar=includes=*,output=tcpser
  14. ver,port=2014,address=10.210.230.26会在这个端口上提供client访问,并能dump出此时的覆盖率数据文件:destfile-->
  15. <target name="dump">
  16. <jacoco:dump address="10.210.230.26" reset="false" destfile="${result.exec.file}" port="2014" append="false"/>
  17. </target>
  18. <target name="report" depends="dump">
  19. <!-- Create coverage report -->
  20. <jacoco:report>
  21. <!-- This task needs the collected execution data and ... -->
  22. <executiondata>
  23. <file file="${result.exec.file}" />
  24. </executiondata>
  25. <!-- the class files and optional source files ... -->
  26. <structure name="apiservice-java-strategyapi">
  27. <group name="strategy">
  28. <classfiles>
  29. <fileset dir="${result.classes.dir}"/>
  30. <!-- 可以指定jar包 -->
  31. <!--  include name="*.jar"  -->
  32. </classfiles>
  33. <sourcefiles encoding="UTF-8">
  34. <fileset dir="${resource.code}"/>
  35. </sourcefiles>
  36. </group>
  37. </structure>
  38. <!-- to produce reports in different formats. -->
  39. <html destdir="${result.report.dir}" />
  40. </jacoco:report>
  41. </target>
  42. </project>

执行: ant -v

最后在 destdir路径下 /data1/hugang/jacocoresult/

生成html报告

五.展示报告

将报告文件,放到apache服务器下,直接访问html,如下:

参考:http://www.eclemma.org/jacoco/trunk/doc/ant.html

jacoco统计自动化测试代码覆盖率的更多相关文章

  1. jacoco统计自动化代码覆盖率

    jacoco统计自动化代码覆盖率 1. 简介 1.1. 什么是Jacoco Jacoco是一个开源的代码覆盖率工具,可以嵌入到Ant .Maven中,并提供了EclEmma Eclipse插件,也可以 ...

  2. 使用JaCoCo统计单元测试代码覆盖率

    1 JaCoCo介绍 JaCoCo是EclEmma团队基于多年覆盖率库使用经验总结而研发的一个开源的Java代码覆盖率库. 2 JaCoCo覆盖率计数器 JaCoCo 包含了多种尺度的覆盖率计数器(C ...

  3. pipeline结合jacoco获取自动化测试代码覆盖率

    1下载jacoco,并上传至服务器:https://www.eclemma.org/jacoco/ 2.应用服务tomcat的catalina.sh增加jacocoagent #JAVA_OPTS=& ...

  4. ant+Jacoco 统计tomcat远程部署后项目接口自动化测试或者功能测试代码覆盖率

    1.安装ant 环境,https://ant.apache.org/bindownload.cgi 2.下载jacoco包  https://www.eclemma.org/jacoco/ ,解压后, ...

  5. Jacoco统计web接口/功能测试的代码覆盖率【转】

    原文:https://www.jianshu.com/p/d2fd02d4164b 一.代码覆盖率 通常我们在做单元测试的时候会接触到代码覆盖率的概念,通过在单元测试的过程中收集代码覆盖率去判断测试用 ...

  6. 利用JaCoCo统计接口测试中代码覆盖率

    ​        做接口测试,很多时候都会听到,你接口测试的覆盖率是多少?很多人会回答80%,你怎么统计的,他说覆盖了80%的需求.这个回答没有错误,但是片面,我们不能只考虑需求的覆盖率,还有业务的覆 ...

  7. 使用Jacoco统计服务端代码覆盖情况实践

    一.背景 随着需求的迭代,需求增加的同时,有可能会伴随着一些功能的下线.如果不对系统已经不用的代码进行梳理并删除不需要的代码,那么就会增加系统维护成本以及理解成本.但经历比较长的迭代以及系统交接,可能 ...

  8. jacoco统计Android手工测试覆盖率并自动上报服务器

    改进了几个点 1. 不用借助Instrumentation启动,正常启动即可: 2. 测试代码不用push到主分支,主分支代码拉到本地后用git apply patch方式合并覆盖率代码: 3. 测试 ...

  9. maven项目使用jacoco插件检测代码覆盖率详细配置

    使用maven构建项目(java项目或者web项目都可以) jacoco插件的配置参考官方网址:http://www.eclemma.org/jacoco/trunk/doc/maven.html ( ...

随机推荐

  1. bzoj3173 Splay 维护前缀中的最大值

    大致题意: 有一个空序列,依次插入1~N到该序列中,每次指定插入的位置,每次插入完成返回当前序列的LIS的长度. 题解: 设dp[i]表示 前缀1~i的最长上升子序列的长度. 因为是按照递增顺序插入的 ...

  2. 搭建Nexus本地仓库

    1 下载nexus安装包  网址:http://www.sonatype.org/nexus/   建议下载最新的版本,最新的版本支持比较新的jdk版本, 1.6 肯定是不行的,必须是1.7及其以上. ...

  3. redis缓存穿透解决办法--排它锁

  4. Pyhton 编程风格

    博文概要:1.Python语句和语法2.Python标识符3.基本编程风格 一.Python语句和语法 1.可以从一行的任何地方开始2.续行 \: ''':闭合操作符,单一语句跨多行 3.代码组 .缩 ...

  5. Linux High Availabi RHCS

    -----本文大纲 简介 术语 环境配置 实现过程 命令行管理工具 ------------- 一.简介 RHCS 即 RedHat Cluster Suite ,中文意思即红帽集群套件.红帽集群套件 ...

  6. jrebel使用

    背景与愿景:开发环境下,tomcat对热布署的支持还不够全面,致使开发人员浪费大量时间在重起服务上.为了提高开发效率,决定引入Jrebel,它对热布署的支持相对比较全面.虽然Jrebel官方号称使用它 ...

  7. linux系统编程:线程原语

    线程原语 线程概念 线程(thread),有时被称为轻量级进程(Lightweight Process,LWP).是程序运行流的最小单元.一个标准的线程由线程ID.当前指令指针(PC),寄存器集合和堆 ...

  8. MVC扩展Filter,通过继承ActionFilterAttribute为登录密码加密

    与ActionFilter相关的接口有2个: □ IActionFilter 对action执行前后处理 void OnActionExecuting(ActionExecutingContext f ...

  9. 转: "SMTP 服务器无法识别在 Mac 2011 Outlook 中发送电子邮件时错误。错误 17092"

    在 Mac 2011 Outlook 中发送电子邮件时,您可能会收到下面的错误消息: 无法发送邮件.SMTP 服务器无法识别任何 Outlook 所支持的身份验证方法.请尝试更改帐户设置中的 SMTP ...

  10. UIScrollView视差效果动画

    UIScrollView视差效果动画 效果 源码 https://github.com/YouXianMing/Animations // // ScrollImageViewController.m ...