测试开发系列之代码质量管理 SonarQube

2489 篇文章 33 订阅
1401 篇文章 7 订阅

在这里插入图片描述
SonarQube 是一个功能强大、使用灵活的代码质量管理工具,它可以帮助开发团队提高代码质量,保障项目的长期健康。通过将 SonarQube 集成到开发流程中,团队可以实现自动化的代码质量管理,降低维护成本,并交付高质量的代码。如果你还没有将 SonarQube 纳入开发流程,现在就是开始的好时机。

在现代软件开发中,代码质量对项目的成功至关重要。随着项目规模的扩大,代码的复杂性和维护难度也随之增加,这使得保持代码的可读性、可维护性和安全性是相当大的挑战。SonarQube 作为一款优秀的代码质量管理工具,通过静态分析自动检测代码中的问题,能够帮助开发者提前发现潜在的缺陷和漏洞,提升代码质量。

什么是 SonarQube?

SonarQube 是一个开源的、企业级的代码质量管理平台,它通过静态代码分析的方式,检测项目中的代码异味、重复代码、安全漏洞和复杂度等问题。SonarQube 支持多种编程语言(如 Java、C++、Python、JavaScript、Go 等),并且可以与多种 CI/CD 工具(如 Jenkins、GitLab CI)进行集成,实现自动化的代码质量检测。

在这里插入图片描述

SonarQube 具有以下功能:

静态代码分析: 通过分析源代码,检测潜在的质量问题,如重复代码、不必要的复杂度和潜在的漏洞。

代码覆盖率: 结合单元测试,SonarQube 可以跟踪测试覆盖率,确保新代码被充分测试。

质量门槛(Quality Gates): 通过预设的规则,自动评估代码质量是否满足要求,保障项目的代码基准。

SonarQube架构

SonarQube平台由四部分组成:

在这里插入图片描述

1. SonarQube Server(服务器)

SonarQube Server 是整个系统的核心部分,负责接收来自客户端(如 SonarQube Scanner)提交的扫描结果,并将这些结果存储和展示在 Web 界面中。服务器本身主要由以下几个模块组成:

Web Server(Web 服务器):提供 Web 界面,用户可以通过浏览器查看项目的代码质量报告、设置项目、配置质量门槛(Quality Gates)等。

Compute Engine(计算引擎):处理并分析代码扫描结果,生成质量报告,并计算诸如代码覆盖率、重复率等信息。

2. SonarQube Database(数据库)

存储代码质量的历史记录、配置和用户信息。SonarQube 支持多种数据库,如 PostgreSQL、MySQL、Oracle 等。

需要注意的是:SonarQube在 7.9 之后将停止对 MySQL 的支持。

3. SonarQube Plugins(插件)

插件是 SonarQube 的扩展机制,可以通过插件支持更多的编程语言扫描、增加新的规则和分析引擎,甚至集成其他开发工具。

语言插件:支持多种编程语言的分析,如 Java、C++、Python、JavaScript、Go 等。

规则插件:增加新的代码分析规则,如安全扫描、性能检测等。

集成插件:支持与其他工具的集成,如 Jenkins、GitLab CI等。

4. SonarQube Scanners(扫描器)

SonarQube Scanner 是一个独立的客户端工具,负责分析项目代码并将结果提交到 SonarQube Server。它通过静态分析代码,检测代码中的问题,并生成相应的报告。SonarQube Scanner 可以在本地、CI/CD 环境或 IDE 中使用。

命令行扫描器:最常用的工具,通过命令行运行 sonar-scanner 命令,扫描指定项目的代码。

其他扫描器:SonarQube 还提供特定语言或构建工具的扫描器,如 Maven Scanner、Gradle Scanner 和 Ant Scanner 等。

SonarQube安装与配置

在使用 SonarQube 之前,首先需要安装 SonarQube 服务器,并配置 SonarQube Scanner(扫描器)来执行代码扫描。

1. 下载 SonarQube 服务器

从 SonarQube 官方网站下载适合的版本。这里选择的是7.8的版本(为了使用MySQL数据库)

https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.8.zip

2. 启动 SonarQube 服务器

解压下载包后,双击StartSonar.bat启动服务器(如果是Linux系统则是进入到linux-x86-64目录下执行./sonar.sh命令):

在这里插入图片描述
3. 访问 SonarQube Web 界面

SonarQube服务启动之后默认监听端口是9000,在浏览器中打开 http://127.0.0.1:9000,可以访问 SonarQube 的 Web 界面,默认用户名和密码都是 admin。

在这里插入图片描述
4. SonarQube 页面汉化

sonar默认语言是英文,对于很多小伙伴不够友好,可以在sonar里面安装汉化插件:选择Administration->Marketplace->搜索Chinese,这里需要注意:由于我们安装的是7.8版本SonarQube,这里的汉化插件版本不匹配,我们可以从下面的网址中找到对应的匹配版本:https://github.com/xuhuisheng/sonar-l10n-zh

在这里插入图片描述
这里我们选择1.28版本的汉化插件,下载jar包:https://github.com/xuhuisheng/sonar-l10n-zh/releases/tag/sonar-l10n-zh-plugin-1.28

将jar包拷贝到sonarqube-7.8\extensions\plugins目录下,重启SonarQube即可

这里需要注意直接关闭StartSonar.bat之后需要在后台杀掉相关的Java进程再重新启动,不然重新启动Sonar会失败。

5. SonarQube关联MySQL数据库

默认SonarQube使用的是H2数据库,Sonar可以支持MySQL数据库,只需要在sonarqube-7.8\conf\sonar.properties配置文件中配置JDBC相关的链接信息即可

在这里插入图片描述

sonar.jdbc.username=用户名
sonar.jdbc.password=密码
sonar.jdbc.url=jdbc:mysql://IP地址:端口号/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

在MySQL数据库中新建sonarqube表,重启Sonar之后能够看到sonarqube表已经初始化:

在这里插入图片描述

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取 【保证100%免费】
在这里插入图片描述

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述
在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值