精准测试-流水线jacoco代码覆盖率统计

目录

关于精准测试

非流水线单独部署学习

参考文档:

准备工作

部署 super jacoco 服务

监控被测项目

启动收集、获取覆盖率

执行测试、生成报告

蓝鲸流水线加入superjacoco


关于精准测试

精准测试是一种软件测试方法,它旨在通过使用先进的工具和技术来提高测试的效率和效果。精准测试的核心思想是通过精确的数据分析和测试结果来指导测试过程,确保测试工作能够更加有针对性和高效。

精准测试的目标是减少不必要的测试工作,提高测试的针对性和效率,从而在保证软件质量的同时,减少测试成本和缩短上市时间。这种方法特别适用于复杂的大型软件系统和快速迭代的开发模式。在精准测试的实施过程中,测试团队需要具备较强的数据分析能力和熟练使用各种测试工具的技能,并且充分发挥测试左移、右移。

测试左移与测试右移-CSDN博客

非流水线单独部署学习

这里使用的Super-jacoco属于代码覆盖率分析工具

代码覆盖率统计Super-jacoco在公司级容器化项目中的具体应用方案-CSDN博客

Jacoco代码覆盖率报告详解_jacoco报告怎么看-CSDN博客

superjacoco缺点:没有体现代码执行频次/执行时间,但用于精准测试场景,可不用关心这两个问题。

准备工作

使用Super-jacoco作为代码覆盖率统计工具。准备了2台服务器:Super-jacoco服务宿主机(232.101)确认宿主机 git、jdk、maven。被测视频服务机器(236.42),确保2台服务器直接网络通畅。

安装参考资料进行数据库配置,application.properties配置(注意数据库驱动需对应版本),pom文件依赖配置。

进入super-jacoco-master\jacoco下,把org.jacoco.cli-1.0.2-SNAPSHOT-nodeps文件放到宿主机(232.101)的root目录下,用于获取报告文件

mv org.jacoco.cli-1.0.2-SNAPSHOT-nodeps.jar /root

在Super-jacoco目录下打包,执行命令。

※注意:运行Maven命令时一定要进入pom.xml文件所在的目录!

mvn package '-Dmaven.test.skip=true'

解决打包时依赖问题:1、远程仓库超时。2、编译时无权限。等

打包时可能会遇到报错:jdk.internal.org.objectweb.asm 未找到,此时在superjacoco代码中把jdk.internal.org.objectweb.asm替换为org.objectweb.asm即可

部署 super jacoco 服务

完成打包后启动服务,执行命令

nohup java -jar super-jacoco.jar &

检查是否启动成功

lsof -i:8899

监控被测项目

来到被测视频服务机器(236.42)

把super-jacoco-master\jacoco下,org.jacoco.agent-0.8.5-runtime放到被测视频服务机器(236.42)指定目录下

与参考文件不同的是视频服务是由run.sh文件通过找到主类启动,因此需要修改run.sh,在start方法中  -Dname=$Tag 前加上  -javaagent:/usr/local/org.jacoco.agent-0.8.5-runtime.jar=includes=*,output=tcpserver,port=18513,address=*,append=true

function start() {
  #nohup java $JVM -Dappliction=$Tag -Djava.ext.dirs=$Lib:$JRE_HOME/lib/ext $MainClass >> $Log 2>&1 &
  nohup $JRE_HOME/bin/java -javaagent:/usr/local/org.jacoco.agent-0.8.5-runtime.jar=includes=*,output=tcpserver,port=18513,address=*,append=true  -Dname=$Tag -cp $JAVA_CP ${JVM} ${MainClass} >>$Log 2>&1 &
  spid=$(ps -ef | grep -v 'grep' | egrep $Tag | awk '{printf $2 " "}')
  echo "$Tag start success pid:$spid"
}

保存后run.sh start,查看18513 端口的服务是否启动成功

lsof -i:18513

最后再来到宿主机(232.101)查看是否能访问到 236.42的18513端口

telnet 10.80.236.42 18513

启动收集、获取覆盖率

启动覆盖率收集URL:

http://super-jacoco所在服务器地址:8899/cov/triggerEnvCov

POST数据:

headers = {'Content-Type': 'application/json'}
data = {
    "uuid": "可自定义",
    "type": 1,  # 1全量; 2增量
    "gitUrl": "被测服务的git克隆地址",
    "subModule": "模块(com.XXX),非必填",
    "baseVersion": "被对比的git分支(dev/master/或分支ID)",
    "nowVersion": "同上",
    "address": "被测服务器",
    "port": "18513"
}

分支id:

覆盖率结果URL:

http://super-jacoco所在服务器地址:8899/cov/getEnvCoverResult

GET数据:

params = {
    "uuid": "之前定义的uuid值",
}

执行测试、生成报告

执行和被测服务shot-video-manage-service相关的功能测试,jacoco会记录代码覆盖率。如果jacoco pom中未定义报告路径的话。报告文件默认在org.jacoco.cli-1.0.2-SNAPSHOT-nodeps.jar 的同级目录下:

宿主机(232.101)/root/report 找到uuid同名文件夹

蓝鲸流水线加入superjacoco

未完待续………………

  • 46
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值