写点什么

软件测试 | Sonarqube 中的覆盖率分析

  • 2023-03-06
    北京
  • 本文字数:842 字

    阅读完需:约 3 分钟

导入覆盖率

sonarqube 可以分析 jacoco 的 exec 文件与 xml 文件,并自动导入覆盖率。exec 文件的分析后续会放弃 支持,主支持 xml 文件的分析。

sonar-scanner \ -Dsonar.host.url=http://sonarqube.testing-studio.com:9000 \ -Dsonar.login=$SONARQUBE_TOKEN \ -Dsonar.projectKey=jmeter \ -Dsonar.projectVersion=1.0 \ -Dsonar.coverage.jacoco.xmlReportPaths=$PWD/jmeter_coverage_tcpserver2/jacoco.xml \ -Dsonar.projectBaseDir=/Users/seveniruby/projects/jmeter/ \ -Dsonar.java.binaries=/Users/seveniruby/projects/jmeter/
复制代码

限定范围的代码覆盖

可以通过如下参数限定要分析代码的范围,通常是指明要覆盖的 package 范围

sonar.sources

sonar.inclusions

新增代码覆盖率

sonarqube 可以智能分析新老版本之间的新增代码的覆盖率,这点非常不错,以前一些分析代码 diff 的 工作就节省了。他的代码分析也比较智能,简单的换行并不会干扰代码 diff 的分析范围。

通用覆盖率数据

sonarqube 支持两种通用的测试数据导入

通用覆盖率数据:sonar.coverageReportPaths

通用测试执行数据:sonar.testExecutionReportPaths

这样方便与各种框架进行集成,也方便测试工程师二次定制。

通用测试数据模板

通用覆盖率数据模板

在 sonarqube 的 scanner 分析中,加入对应的配置参数即可导入通用测试数据。

通用测试数据导入的常见用途

  • 将各种测试工具的测试报告转换为 sonarqube 支持的格式从而导入平台

  • 将各种覆盖率工具的覆盖率报告转换为标准格式导入平台

  • 根据需求对差异 diff 覆盖率进行定制,比如除了对新增代码做覆盖,还要对使用了新增代码的依赖 代码也做分析

代码 diff 方法

代码的 diff 分析是一个比较大的话题,diff 只是对代码的最简单的一个分析策略,要想深入的理解代 码,我们还需要更进一步的分析代码的调用链。我们先看最简单的代码 diff 分析工具。

代码 diff 分析工具

JGit:git 分析工具

JavaParser:语法分析

ASM:读取字节码

javap:jdk 自带字节码分析工具

搜索微信公众号:TestingStudio 霍格沃兹的干货都很硬核

用户头像

社区:ceshiren.com 微信:ceshiren2023 2022-08-29 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料、实事更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬

评论

发布
暂无评论
软件测试 | Sonarqube中的覆盖率分析_测试_测吧(北京)科技有限公司_InfoQ写作社区