jacoco+ant安装部署篇(统计代码覆盖率,适用自动化测试)
1:什么是jacoco?
JaCoCo是一个开源的覆盖率工具(官网地址:http://www.eclemma.org/JaCoCo/),它针对的开发语言是java,其使用方法很灵活,可以嵌入到Ant、Maven中;可以作为Eclipse插件,可以使用其JavaAgent技术监控Java程序等等。
很多第三方的工具提供了对JaCoCo的集成,如sonar、Jenkins等。
2:什么是代码覆盖?
测试过程中根据需求文档和设计文档编写测试用例、执行测试;为了更加全面的覆盖,我们可能还需要理解被测程序的逻辑,需要考虑到每个函数的输入与输出,逻辑分支代码的执行情况,这个时候我们的测试执行情况就以代码覆盖率来衡量,可以理解为白盒覆盖。
以上两者完全可以相辅相成,用代码覆盖结果反向的检查需求覆盖(用例)的测试是否充分完整。
。
3:安装软件
3.1:tomcat:因为服务器上已经安装了tomcat,所以没有亲自在Linux服务器上安装
3.2:Jacoco:
安装步骤:
3.2.1:下载包上传到Linux服务器,(路径自己选择):https://oss.sonatype.org/service/local/artifact/maven/redirect?r=snapshots&g=org.jacoco&a=jacoco&e=zip&v=LATEST
3.2.2:下载unzip工具,命令:sudo apt-get install unzip(1:apt-get sudo apt-get install package #安装包)
3.2.3:解压文件,执行命令:unzip jacoco-0.8.2-20180518.004140-15.zip
3.3:ant:
3.2.1:下载:下载地址:http://ant.apache.org/bindownload.cgi 下载apache-ant-1.8.1-bin.tar.gz(当前最新版本)
3.2.2:解压cd /home/ubuntu/ant ; tar -zxvf apache-ant-1.8.1-bin.tar.gz,解压后生成一个文件夹apache-ant-1.8.1
3.2.3:配置环境变量(ant是基于java的,所以要先确保系统中已经安装了jdk,检查系统是否安装JDK:java -version)
(1)设置用户环境变量:输入命令:vim ~/.bashrc,打开文件,输入ant需要的环境变量;如下内容:
ANT_HOME=/home/ubuntu/ant/apache-ant-1.8.1
PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH
export JAVA_HOME JAVA_BIN ANT_HOME PATH CLASSPATH
(2)退出并保存:esc => shift + : => wq => 回车
(3)【设置环境变量后必须使命令生效!!】再输入命令使之生效:source ~/.bashrc
4:准备项目
4.1:源码、WAR包
5:Tomcat配置
5.1:1、进入你需要统计代码覆盖率的tomcat :cd /home/ubuntu/local/server/apache-tomcat-7.0.77
5.2、先关闭这个tomcat的服务:正常情况下可以直接执行 ./shutdown.sh;执行结束后 ps -ef|grep 端口号 查看是否已经正常关闭,如果还没有关闭 kill -9 pid(来源于ps的结果)
5.3、修改 catalina.sh 的JAVA_OPTS配置
JAVA_OPTS="$JAVA_OPTS -javaagent:/home/ubuntu/jcoco/lib/jacocoagent.jar=includes=*,output=tcpserver,append=true,,port=6101,address=*"
具体参数的意思请查看官方文档
5.4、启动服务 ./startup.sh
5.5、查看一下JAVA_OPTS是否有修改正确
6:Ant配置
随意进入一个目录新建build.xml,build.xml见附件
7:生成报告:
进入build.xml路径下执行ant命令:
首先ant dump:开始统计代码覆盖率
自动化跑完之后,执行ant report命令生成report报告
生成的最终覆盖率report文件路径是在build.xml中配置的;到生成report路径下将report文件down下来,打开index.html则可以看见覆盖率报告。
生成报告截图如下:

build.xml文件配置:
<?xml version="1.0" ?>
<project name="coverage" xmlns:jacoco="antlib:org.jacoco.ant" default="report">
<!--Jacoco的安装路径-->
<property name="jacocoantPath" value="/home/ubuntu/jcoco/lib/jacocoant.jar"/>
<!--最终生成.exec文件的路径,Jacoco就是根据这个文件生成最终的报告的-->
<property name="jacocoexecPath" value="/home/ubuntu/jcoco/jacoco.exec"/>
<!--生成覆盖率报告的路径-->
<property name="reportfolderPath" value="/home/ubuntu/jacoco/report"/>
<!--远程tomcat服务的ip地址-->
<property name="server_ip" value="127.0.0.1"/>
<!--前面配置的远程tomcat服务打开的端口,要跟上面配置的一样-->
<property name="server_port" value="6101"/>
<!--源代码路径-->
<property name="wqltest-src" value="/home/ubuntu/wqltest/jacocowql/src/main/java" />
<!--.class文件路径-->
<property name="wqltest-classpath" value="/home/ubuntu/local/server/apache-tomcat-7.0.77/webapps/jacocowql/WEB-INF/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="false" destfile="${jacocoexecPath}" port="${server_port}" append="false"/>
</target>
<!--jacoco任务:
根据前面配置的源代码路径和.class文件路径,
根据dump后,生成的.exec文件,生成最终的html覆盖率报告。-->
<target name="report" depends="dump">
<delete dir="${reportfolderPath}" />
<mkdir dir="${reportfolderPath}" />
<jacoco:report>
<executiondata>
<file file="${jacocoexecPath}" />
</executiondata>
<structure name="JaCoCo Report">
<group name="wqltest">
<classfiles>
<fileset dir="${wqltest-classpath}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${wqltest-src}" />
</sourcefiles>
</group>
</structure>
<html destdir="${reportfolderPath}" encoding="utf-8" />
</jacoco:report>
</target>
</project>
文章转自https://www.cnblogs.com/qiaoli0726/p/9094202.html
jacoco+ant安装部署篇(统计代码覆盖率,适用自动化测试)的更多相关文章
- Linux之ant安装部署
接下来呢,就开始ant的部署,具体分为如下几个步骤: 1. 获取介质: 在apache的官网中直接下载,下载地址为:http://ant.apache.org/ 下载需要的版本即可: 2. 复制到us ...
- ceph 常见问题百科全书---luminous安装部署篇
1. 执行步骤:ceph-deploy new node 机器:centos 7.5 ceph Luminous版本 源:阿里云 问题: Traceback (most r ...
- Jacoco远程统计代码覆盖率
Jacoco 什么是Jacoco? Jacoco是一个开源的Java代码覆盖率工具,Jacoco可以嵌入到Ant .Maven中,并提供了EclEmma Eclipse插件,也可以使用JavaAg ...
- jacoco + ant远程统计(tomcat/spring boot)服务的代码覆盖率
什么是Jacoco? Jacoco(java code coverage)是一个开源的Java代码覆盖率工具,Jacoco可以嵌入到Ant .Maven中,并提供了EclEmma Eclipse插件, ...
- jenkins+jacoco+ant+apache集成统计web端功能测试覆盖率
一.覆盖率定义 作为一个测试人员,保证产品的软件质量是其工作首要目标,为了这个目标,测试人员常常会通过很多手段或工具来加以保证,覆盖率就是其中一环比较重要的环节. 我们通常会将测试覆盖率分为两个部分, ...
- java服务覆盖率统计 jacoco ant
● 下载jacoco.exec.jacocoant.jar.jacocoagent.jar ● jvm启动参数中添加(tomcat服务原理一样) JACOCO_OPTS=JAVA_OPTS=" ...
- 环境篇:DolphinScheduler-1.3.1安装部署及使用技巧
环境篇:DolphinScheduler-1.3.1安装部署 1 配置jdk JDK百度网盘:https://pan.baidu.com/s/1og3mfefJrwl1QGZGZDZ8Sw 提取码:t ...
- 大数据篇:DolphinScheduler-1.2.0.release安装部署
大数据篇:DolphinScheduler-1.2.0.release安装部署 1 配置jdk #查看命令 rpm -qa | grep java #删除命令 rpm -e --nodeps xxx ...
- 【Docker】第一篇 Docker的初始化安装部署
一.Docker基础 Dacker倡导的理念:一个容器一个进程 Docker的版本了解: Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE. 社区版是免费提供给个人 ...
随机推荐
- BZOJ2946 [Poi2000]公共串(后缀自动机)
Description 给出几个由小写字母构成的单词,求它们最长的公共子串的长度. 任务: l 读入单词 l 计算最长公共子串的长度 l 输 ...
- 【读书笔记】iOS-更新项目前要注意的事情
在进行永久更改项目的任何现代化操作之前,要问自己几个问题. 1,我还需要返回项目的旧代码吗? 2,我的同事中有没有人无法升级到最新版本的Xcode? 3, 如果我使用了最新的功能,会不会减少用户? ...
- phpcms中content主要使用的详情列表关系
从首页(index.html)中点开的内容网页叫单网页(page.html) 从列表(list.html)中点开的网页叫内容页(show.html) 从导航栏的栏目中下拉的列表栏目叫栏目列表页(cat ...
- JAVA设计模式——代理(静态代理)
定义 为其它的对象提供一种代理,以控制这个对象的访问 使用场景 当不想直接访问某个对象的时候,就可以通过代理 1.不想买午餐,同事帮忙带 2.买车不用去厂里,去4s店 3.去代理点买火车票,不用去车站 ...
- Vue.js 2.x:组件的定义和注册(详细的图文教程)
本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 前言 什么是组件 组件: 组件的出现,就是为了拆分Vue实例的代码量的, ...
- mac 全角/半角标点符号切换
快捷键:option+shift+H 背景是这样的,前段时间sublimeText新装了HTML/CSS/JS Prittify,JS代码格式化的快捷键是:command+shift+H. 记性有点差 ...
- win10系统磁盘占用率高的解决方法,占用100%的问题
win10系统开机后明明什么都没做,磁盘占用率却只见飙升到了100%,出现这种情况是win10自带的服务导致的.下面的方法可以解决win10系统磁盘占用率高问题. 1.按下Win+R,然后输入serv ...
- SQL Server DATA文件夹下audittrace20180124152845_52.trc类文件异常增多
同事告知某现场SQL Server2008R2数据库的DATA文件夹下audittrace开头的trc文件不断增多,占用较大空间,因此需要关停,尝试解决步骤如下: 1.查看是否有后台开启的trace ...
- python模块:xlsxwriter和xlrd相结合读取、写入excel文件
python模块简单说明: xlsxwriter:负责写入数据 xlrd:负责读取数据 xlsxwriter 官方文档:http://xlsxwriter.readthedocs.org 本实例是刚写 ...
- 解决git push时发现有超过100M的文件时,删除文件后,发现还是提交不上去的问题
我这里故意放了一个超过100M的文件 后续,git add ,git commit 然后,git push 此时会发现出现了错误.如果,我们再这里直接在文件系统中删除这个大的文件,然后再次提交,会发现 ...