►►►实现效果
接口测试►覆盖率探测►报告输出并关联用例
部署 jacoco 包,这里举例放在被测应用的/usr/jacoco,在应用的启动脚本 start.sh 添加 agent 入口,如果是流水线自动化部署,建议单独构建一个启动脚本副本,专做 SIT 测试用。
-javaagent:/usr/jacoco/lib/jacocoagent.jar=includes=*,output=tcpserver,port=9999,address=127.0.0.1,append=true
javaagent: jacocoagent.jar 包路径
includes: 被测系统的包路径,一般都是 com.xx.*
address\port: 支持远程输出执行数据
start.sh 启动服务后一并调起 agent 进程探测代码覆盖。
接口测试执行后用 jacoco dump 生成原始报告.exec:
java -jar /usr/jacoco/lib/jacococli.jar dump --address 127.0.0.1 --port 9999 --destfile ./report_target/res.exec
渲染 exec 覆盖率报告(生成 html):
java -jar /usr/jacoco/lib/jacococli.jar report /report_target/res.exec --classfiles /usr/ApplictionService/target/classes --html /usr/jacoco/report_final
--classfiles:被测 jar 包解包后的类文件路径(用于渲染报告)
--html:生成 html 报告路径(也支持导出--xml)
可以将这两步可以合并在一个 shell 里,接口测试的后置函数进行调用,这样测试执行和覆盖率报告生成两个动作就串联起来了:
对报告的后续关联操作: