You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何将SonarQube的measures数据导出至Excel?无需查库方案(7.0嵌入式DB)

SonarQube Measures数据导出至Excel的方法及嵌入式数据库场景说明

嘿,我来帮你搞定这两个问题:

一、将SonarQube中的'measures'数据导出至Excel的几种方式

1. UI直接导出(最适合快速操作)

这是最省心的方式,完全不用写代码:

  • 打开你的SonarQube项目,切换到Measures标签页
  • 先调整好你需要的指标视图:比如筛选特定的指标分组、排序方式,或者添加/移除某些指标
  • 找到页面右上角的Export按钮(一般是个向下的下载箭头图标),点击后选择Excel选项,浏览器会自动下载包含当前页面所有可见数据的Excel文件,直接就能用

2. API批量导出(适合大量数据或自动化需求)

如果需要批量获取多个项目的measures数据,或者要定期导出,用SonarQube的Web API更灵活:

  • 先构造API请求,比如获取单个项目的核心指标:
    GET /api/measures/component?component=你的项目key&metricKeys=bugs,vulnerabilities,code_smells,coverage,duplicated_lines_density
    
    你可以根据需要添加更多metricKeys,比如ncloc(代码行数)、sqale_rating(技术债务评级)等
  • 把返回的JSON数据转换成Excel:可以用在线的JSON转Excel工具,或者用Python脚本自动化处理,举个简单的示例:
    import pandas as pd
    import requests
    
    # 替换成你的SonarQube实例地址和项目key
    sonar_base_url = "http://localhost:9000"
    target_project_key = "your_project_key"
    # 按需添加需要的指标
    target_metrics = "bugs,vulnerabilities,code_smells,coverage,duplicated_lines_density"
    
    # 发送API请求
    response = requests.get(
        f"{sonar_base_url}/api/measures/component",
        params={"component": target_project_key, "metricKeys": target_metrics}
    )
    measure_data = response.json()
    
    # 整理数据格式
    output_rows = []
    for item in measure_data['component']['measures']:
        output_rows.append({
            "指标名称": item['metric'],
            "指标值": item['value'],
            "单位/周期值": item.get('period', {}).get('value') or item.get('unit', '')
        })
    
    # 保存为Excel文件
    df = pd.DataFrame(output_rows)
    df.to_excel("sonar_measures_export.xlsx", index=False)
    

二、SonarQube 7.0嵌入式数据库场景:无需查询数据库即可导出measures指标

答案是完全不需要直接操作嵌入式H2数据库,而且非常不推荐这么做:

  • SonarQube的嵌入式H2数据库只是底层存储,官方已经通过UI和API把measures标签页的所有指标都开放出来了,你用前面说的UI导出或者API调用就能拿到所有需要的数据
  • 直接操作H2数据库不仅麻烦(需要开启远程连接、熟悉复杂的表结构),还容易误操作导致数据损坏,尤其是测试场景下,用官方提供的导出方式既安全又高效,完全能满足需求

内容的提问来源于stack exchange,提问作者Jared Collins

火山引擎 最新活动