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

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


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

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

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




一共是143个质量数据维度

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


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


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


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


搜素如下展示


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

发现一个问题:

就是


就是图中的新覆盖率和新代码覆盖率是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取值有问题。



猜你喜欢

转载自blog.csdn.net/lxlmycsdnfree/article/details/80109644
今日推荐