1.前言

此方案采用的是无源码生成覆盖率文件,即只需要生成.exec文件,不需要生成覆盖率报告,所以步骤较为简单。

2.准备相关jar包

jacoco agent下载地址:
http://central.maven.org/maven2/org/jacoco/org.jacoco.agent/0.8.4/org.jacoco.agent-0.8.4-runtime.jar
jacoco cli下载地址:
http://central.maven.org/maven2/org/jacoco/org.jacoco.cli/0.8.4/org.jacoco.cli-0.8.4-nodeps.jar
在linux下使用wget命令下载即可

3.启动待测应用

要收集覆盖率信息,需要在启动应用时激活jacoco agent代理:
-javaagent:[yourpath /] jacocoagent.jar = [option1] = [value1],[option2] = [value2]
假设应用包名为test.jar,存储在/root目录下,agent和cli存储在/root/jacoco/lib目录下
则原始启动命令为java –jar /root/test.jar
加入agent代理后为java -javaagent:/root/jacoco/lib/org.jacoco.agent-0.8.4-runtime.jar=includes=com.hundsun.broker.cic.*,output=tcpserver,port=10004,address=127.0.0.1 –jar /root/test.jar
includes:指定包含在执行分析中的类名列表
output:用于写入覆盖数据的输出方法
address:output为tcpserver时绑定的ip地址
port:output为tcpserver时绑定的端口
更多参数及详细解释可参考:https://www.eclemma.org/jacoco/trunk/doc/agent.html

4.获取覆盖率文件

在待测应用启动完毕并执行完测试后,需要dump出exec文件并保存,使用以下命令即可
java -jar /root/jacoco/lib/org.jacoco.cli-0.8.4-nodeps.jar dump --address 127.0.0.1 --port 10004 --destfile /root/jacoco.exec
address和port即为启动时绑定的ip地址和端口,destfile指定生成的exec文件的路径和名字
更多参数及详细解释可参考:https://www.eclemma.org/jacoco/trunk/doc/cli.html

5.生成覆盖率报告

生成了exec文件以后,如果有项目class和source文件的话,可以用以下命令生成覆盖率报告
java -jar org.jacoco.cli-0.8.4-nodeps.jar report jacoco.exec --classfiles /opt/JENKINS_HOME/workspace/TestCenter-UF30-CIC-6-Jacoco/Class/ --sourcefiles /opt/JENKINS_HOME/workspace/TestCenter-UF30-CIC-6-Jacoco/Source/ --html jacoco/html --csv jacoco/jacoco.csv --xml jacoco/jacoco.xml
更多参数及详细解释可参考:https://www.eclemma.org/jacoco/trunk/doc/cli.html

分类: 测试

发表评论

电子邮件地址不会被公开。