- Super-Jacoco是基于Jacoco、git二次开发打造的一站式JAVA代码全量/diff覆盖率收集平台,能够低成本、无侵入的收集代码覆盖率数据。Super-Jacoco除了支持JVM运行时间段的覆盖率收集外;还能够和环境无缝对接,收集服务端自定义时间段代码全量/增量覆盖率。并提供可视化的html覆盖率报表,协助覆盖情况精准分析,支撑精准测试落地。
- 通用:既支持单元测试覆盖率收集,也支持手工测试覆盖率收集;既支持全量覆盖率收集,也支持diff覆盖率收集;
- 无侵入:采用on-the-fly模式,无需对开发代码做任何改造,即可收集覆盖率数据;
- 高可用:分布式架构,任务机可无限扩展,避免任务机down机或者任务过多时出现性能瓶颈;
- 可视化:提供html格式的覆盖率报告,可读性高。
安装mysql数据库,创建数据库后执行sql/db.sql文件中的建表SQL
2.1 安装JDK1.8、mavan3
2.2 clone代码,更改application.properties文件中的数据库和gitlab配置:
spring.datasource.url=jdbc:mysql:https://IP:端口/数据库名?useUnicode=true&characterEncoding=utf8
spring.datasource.username=
pring.datasource.password=
gitlab.username=
gitlab.password=
2.3 执行mvn package -Dmaven.test.skip=true生成super-jacoco.jar
3.1 执行“nohup java -jar super-jacoco.jar &”启动代码覆盖率服务,默认端口为8899
URL:/cov/triggerUnitCover
调用方法:POST
参数(body方式传入):{"uuid":"uuid","type":1,"gitUrl":"git@git","subModule":"","baseVersion":"master","nowVersion":"feature","envType":"-Ptest"}
返回:{"code":200,"data":true,"msg":"msg"}
备注:
URL:/cov/getUnitCoverResult
调用方法:GET
参数:uuid(String)
返回:{"code":200,"data":{"coverStatus":1,"errMsg":"msg","lineCoverage":100.0,"branchCoverage":100.0,"logFile":"file content","reportUrl":"https://"},"msg":"msg"}
备注:
URL:/cov/triggerEnvCov
调用方法:POST
参数(body方式传入):{"uuid":"uuid","type":1,"gitUrl":"git@git","subModule":"","baseVersion":"master","nowVersion":"feature","address":"127.0.0.1","port":"8088"}
返回:{"code":200,"data":true,"msg":"msg"}
备注:IP和port为模块部署服务器的IP和端口,在dump jacoco.exec时使用,需要提前把org.jacoco.agent-0.8.5-runtime.jar包拷贝到服务器:/home/xxx/目录,服务启动时需要添加启动参数: -javaagent:/home/xxx/org.jacoco.agent-0.8.5-runtime.jar=includes=*,output=tcpserver,address=*,port=18513
URL:/cov/getEnvCoverResult
调用方法:GET
参数:uuid(String)
返回:{"code":200,"data":{"coverStatus":1,"errMsg":"msg","lineCoverage":100.0,"branchCoverage":100.0,"logFile":"file content","reportUrl":"https://"},"msg":"msg"}
备注: