sonarqube8.4报告系列-bugs统计报告

本文档展示了如何利用SonarAPI进行项目质量分析,包括获取项目指标、发送邮件报告以及对数据进行排序。通过调用API获取Bug、覆盖率、重复代码等关键指标,并实现了根据bug数量对项目进行排序的功能,以生成质量报告。此外,还提到手动功能测试中发现大量问题的情况,强调了自动化查询的重要性。

sonar-bugs数据库是有统计的,但是查询的话,也不如api来的方便。
sonar-api入口,我就不再说了,里面有很多接口,我是翻了一遍,其中post多用于与其它第三方应用做webhooks的时候,可能会比较方便做自动化,get多用于查询数据

报告结果
在这里插入图片描述
请憋住指责,我们这个这么多问题,是因为质量真的很差,举个例子:一个周期3周的项目,手工进行功能测试至少是150个BUG起步。有多差,靠想象
sonar-api
Authorization接口调用要进行身份验证,使用postman生成Authorization的值即可.

public class SonarWebApi {
   
   
    /*
     *
     * sonar自带的邮件报告api,无法使用html
     * @throws IOException*/

    /*public static  void sendmail() throws IOException {
   
   
        SendRuquest sendRuquest=new SendRuquest();
        WebApi sendMailInfo =new WebApi();
        String message= sendMailInfo.getemailContent();
        String subject="项目质量汇总报告";
        String url="http://sonar.com.cn/api/emails/send";
//        ?message=hello&subject=hi&to=liujuan@pconline.com.cn
        String to="liujuan@pconline.com.cn";
        Map<String,String> headerMap=new HashMap<String,String>();
        headerMap.put("Authorization","Basic YWRtaW46YWRtaW4=");
        String params="message="+message+"&subject="+subject+"&to="+to;
        String flag=sendRuquest.sendPost(url,params,headerMap);
        if(flag!=null){
   
   
            System.out.println("发送成功");
        }else {
   
   
            System.out.println("发送失败");
        }

    }*/
    /**
     * 获取单个项目的各个质量结果 ,得到JSONArray
     * @return
     * @throws IOException
     */
    public  JSONObject getmeasures(String projectKee){
   
   
        SendRuquest sendRuquest=new SendRuquest();
        String url="http://sonar.com.cn/api/measures/component";
        String params="component="+projectKee+
                "&metricKeys=new_bugs,bugs,new_coverage,coverage,new_vulnerabilities," +
                "vulnerabilities,new_duplicated_lines_density,duplicated_lines_density";
        Map<String,String> headerMap
<think> 我们正在讨论Sonarqube报告生成器(Sonarqube Report Generator)。根据用户的问题,他们想了解这个工具的介绍和使用方法。需要注意的是,用户之前询问了curl添加头部参数的问题,但当前问题已切换至Sonarqube报告生成器,因此应忽略之前的内容。 Sonarqube Report Generator是一个用于生成SonarQube分析报告的工具。它可以从SonarQube实例中提取数据并生成各种格式的报告(如PDF、HTML等),方便团队共享和分析代码质量。 下面我将详细介绍该工具的功能和使用方法: ### 一、Sonarqube Report Generator 功能介绍 1. **报告内容提取**: - 支持提取项目的问题bugs,漏洞,代码异味)、覆盖率、重复代码等指标[^1] - 可自定义时间范围(如对比两次分析结果) 2. **多格式输出**: - PDF:适合打印和存档 - HTML:便于网页查看 - CSV:用于Excel进一步分析 3. **定制化报告**: - 选择特定项目或项目组 - 过滤分支/PR - 自定义报告模板(企业版功能) 4. **自动化支持**: - 提供CLI工具,可集成到CI/CD流水线 - 支持定时自动生成报告 ### 二、安装方法 通过npm安装(需Node.js环境): ```bash npm install -g sonarqube-report-generator ``` ### 三、基本使用步骤 1. **配置SonarQube连接**(创建配置文件`config.json`): ```json { "sonar": { "host": "http://localhost:9000", "token": "your_user_token_here" } } ``` 2. **生成报告命令**: ```bash sonarqube-report-generator \ --project my-project-key \ --output report.pdf \ --format pdf ``` ### 四、常用参数说明 | 参数 | 说明 | |------|------| | `--project` | 项目Key(必填) | | `--format` | 输出格式(pdf/html/csv) | | `--output` | 输出文件路径 | | `--since` | 起始日期(格式:YYYY-MM-DD) | | `--until` | 结束日期 | ### 五、高级用法示例 1. **生成HTML报告并包含历史趋势图**: ```bash sonarqube-report-generator \ --project web-app \ --output ./reports/full-report.html \ --format html \ --metrics coverage,duplications,security_rating ``` 2. **通过CI流水线每日生成报告**(GitLab CI示例): ```yaml generate_sonar_report: image: node:18 script: - npm install -g sonarqube-report-generator - sonarqube-report-generator --project $SONAR_PROJECT_KEY --output report.pdf artifacts: paths: [report.pdf] ``` ### 六、注意事项 1. **权限要求**:使用的SonarQube token需有项目浏览权限 2. **数据延迟**:报告反映的是SonarQube上次分析完成后的数据 3. **模板定制**:企业版支持自定义Logo和样式模板 > 提示:使用`--help`查看完整参数列表:`sonarqube-report-generator --help` §§相关问题§§ 1. Sonarqube Report Generator支持哪些具体的代码质量指标? 2. 如何定制Sonarqube报告的视觉样式? 3. 在没有SonarQube权限的情况下能否生成报告4. 这个工具与SonarQube原生报告功能有何不同? </think> ## SonarQube Report Generator 介绍与使用指南 SonarQube Report Generator 是一个开源工具,用于自动化生成 SonarQube 项目的质量报告,提供更灵活、定制化的报告输出能力。以下是详细介绍: ### 一、核心功能 1. **多格式报告导出**: - 支持 HTML、PDF、CSV 等多种格式 - 可自定义报告模板和样式[^1] 2. **数据聚合分析**: - 按项目/分支/PR 维度聚合质量数据 - 对比不同时间点的质量指标变化 3. **定制化指标**: - 选择特定质量门禁指标 - 过滤特定严重级别的问题(漏洞/异味/代码覆盖率等) 4. **自动化集成**: - 支持 CI/CD 流水线集成(Jenkins/GitLab CI等) - 定时自动生成报告 ### 二、安装方法 #### 通过 Docker 安装(推荐): ```bash docker pull kiwigrid/sonarqube-report-generator ``` #### 通过 npm 安装: ```bash npm install -g sonarqube-report-generator ``` ### 三、基本使用流程 1. **配置文件生成**(`config.json`): ```json { "sonar": { "host": "http://your-sonar-host:9000", "token": "your_user_token", "projects": ["project-key1", "project-key2"] }, "report": { "format": "html", "outputDir": "./reports" } } ``` 2. **执行报告生成**: ```bash sonarqube-report-generator -c config.json ``` ### 四、常用命令参数 | 参数 | 说明 | 示例 | |------|------|------| | `-c/--config` | 配置文件路径 | `-c ./config.json` | | `-p/--project` | 指定项目(覆盖配置) | `-p my-project-key` | | `-f/--format` | 输出格式(html/pdf/csv) | `-f pdf` | | `-o/--output` | 自定义输出目录 | `-o /tmp/reports` | | `-s/--since` | 时间范围(日期格式) | `-s 2023-01-01` | ### 五、高级应用示例 1. **生成多项目对比报告**: ```bash sonarqube-report-generator \ -p "project-a,project-b" \ -f html \ -o ./comparison-reports ``` 2. **CI流水线集成**(GitLab CI): ```yaml generate_sonar_report: image: kiwigrid/sonarqube-report-generator script: - sonarqube-report-generator \ -p $CI_PROJECT_NAME \ -f pdf \ -o artifacts artifacts: paths: [artifacts/*.pdf] ``` ### 六、注意事项 1. **权限要求**: - 需要 SonarQube 用户 Token(具有项目浏览权限) - Token 在配置文件或环境变量`SONAR_TOKEN`中设置 2. **数据时效性**: - 报告基于 SonarQube 最近一次分析结果 - 建议在分析任务完成后执行 3. **自定义模板**: - 通过`--template`参数指定模板路径 - 支持 Handlebars 模板引擎语法 > 官方文档:https://github.com/kiwigrid/sonarqube-report-generator
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值