sonar 分析的质量数据在数据库表中的存储和质量维度数值的研究

首先sonar分析的质量数据维度明细在metric表中:

sonar 分析的质量数据在数据库表中的存储和质量维度数值的研究_第1张图片

图中很关键的数据:覆盖率,新增覆盖率;代码行覆盖率,代码行新增覆盖率

覆盖率是字节码的比值,代码覆盖率是代码行层面的统计,所以一般代码行覆盖率一般>=覆盖率,因为一行可能涉及很多字节码,走到其中一个字节码则即覆盖

其他存储的质量数据维度字段:

sonar 分析的质量数据在数据库表中的存储和质量维度数值的研究_第2张图片

sonar 分析的质量数据在数据库表中的存储和质量维度数值的研究_第3张图片

sonar 分析的质量数据在数据库表中的存储和质量维度数值的研究_第4张图片

一共是143个质量数据维度

所有的project 分析的质量数据在project_measures这个表

sonar 分析的质量数据在数据库表中的存储和质量维度数值的研究_第5张图片

去获取某个peoject质量数据根据analysis_uuid,因为project_measures这个表中有analysis_uuid作为一个关键属性

sonar 分析的质量数据在数据库表中的存储和质量维度数值的研究_第6张图片

那么关键问题来了,如何获取analysis_uuid?这个是关键数据,根据一个sonar api get请求

sonar 分析的质量数据在数据库表中的存储和质量维度数值的研究_第7张图片

http://10.37.124.178:9000/api/ce/task?id=AWMF_byVw6x9hRrwyOth

这个请求获取的结果:


{"task":{"id":"AWMF_byVw6x9hRrwyOth","type":"REPORT","componentId":"AWKoGAC77Uto1y5a2U8f","componentKey":"com.suning.plppss:plppss-pom:1.1.1","componentName":"plppss-pom 1.1.1","componentQualifier":"TRK","analysisId":"AWMF_cKp1R9XW-B8x9JM","status":"SUCCESS","submittedAt":"2018-04-27T15:25:05+0800","submitterLogin":"admin","startedAt":"2018-04-27T15:25:05+0800","executedAt":"2018-04-27T15:25:41+0800","executionTimeMs":35857,"logs":false,"hasScannerContext":true}}

id=AWMF_byVw6x9hRrwyOth 这个参数是ce后台分析的key

sonar 分析的质量数据在数据库表中的存储和质量维度数值的研究_第8张图片

搜素如下展示

sonar 分析的质量数据在数据库表中的存储和质量维度数值的研究_第9张图片

---------------------------------------------------------------------------------------------------------------

发现一个问题:

就是

sonar 分析的质量数据在数据库表中的存储和质量维度数值的研究_第10张图片

就是图中的新覆盖率和新代码覆盖率是metic数据表中的 16 和 92



并不是36,43



这个问题是sonar在取数据的时候,取错了数值,16,92 是注释率


如果将接口

http://10.37.124.178:9000/api/ce/task?id=AWMF_byVw6x9hRrwyOth

返回的analysis_uuid和component_uuid 带入project_measures查询

select value, metric_id from project_measures where analysis_uuid='AWMF0uFl1R9XW-B8wrv-' and component_uuid='AWH6vkHd7Uto1y5a1861' 

没有返回新增覆盖率,都是空,只有16 数值是18.7

所以从这证明sonar取值有问题。



你可能感兴趣的:(sonar)