TA的每日心情 | 擦汗 3 天前 |
---|
签到天数: 527 天 连续签到: 4 天 [LV.9]测试副司令
|
SonarQube简介
SonarQube为静态代码检查工具,采用B/S架构,帮助检查代码缺陷,改善代码质量,提高开发速度,通过插件形式,可以支持Java、C、C++、JavaScripe等等二十几种编程语言的代码质量管理与检测。
通过客户端插件分析源代码,sonar客户端可以采用IDE插件、Sonar-Scanner插件、Ant插件和Maven插件方式,并通过各种不同的分析机制对项目源代码进行分析和扫描,并把分析扫描后的结果上传到sonar的数据库,通过sonar web界面对分析结果进行管理。
SonarQube可以从七个维度检测代码质量:
- (1)复杂度分布(complexity):代码复杂度过高将难以理解
- (2) 重复代码(duplications):程序中包含大量复制、粘贴的代码而导致代码臃肿,sonar可以展示源码中重复严重的地方
- (3) 单元测试统计(unit tests):统计并展示单元测试覆盖率,开发或测试可以清楚测试代码的覆盖情况
- (4) 代码规则检查(coding rules):通过Findbugs,PMD,CheckStyle等检查代码是否符合规范
- (5) 注释率(comments):若代码注释过少,特别是人员变动后,其他人接手比较难接手;若过多,又不利于阅读
- (6) 潜在的Bug(potential bugs):通过Findbugs,PMD,CheckStyle等检测潜在的bug
- (7) 结构与设计(architecture & design):找出循环,展示包与包、类与类之间的依赖、检查程序之间耦合度
SonarQube的架构
- 1.Database
- 2.SonarQube Server
- 3.SonarQube Scanner
- 4.Project
安装SonarQube
1.环境准备
依赖Java环境
数据库(支持[url=]SQL[/url] Server、Mysql、Oracle、PostgreSQL)
MySQL下载:https://dev.mysql.com/downloads/mysql/ (安装sonarqube6.3需要Mysql5.6以上)小编使用的是MySQL5.7.22版本
2.数据库配置
创建名称为:sonar的数据库(数据库名称可自定义,注意和/conf/sonar.properties配置中一致)
3.部署SonarQube Server
SonarQube下载地址:https://www.sonarqube.org/downloads/
将下载的soar安装包解压,我这里解压在D盘目录下的sonar目录中
sonarqube服务中配置修改:/conf/sonar.properties
- sonar.web.host=0.0.0.0 sonar.web.port=9000 sonar.jdbc.username=username sonar.jdbc.password=password sonar.jdbc.url=jdbc:mysql://db_host:db_port/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
复制代码
#sonar.web.context=/your_prefix //非必须,若需要在访问sonarqube服务时加上统一的前缀则配置此项
配置说明:
url是数据库连接地址,username是数据库用户名,jdbc.password是数据库密码
启动服务
D:\sonar\sonarqube-7.1\bin\windows-x86-64,点击SonarStart.bat,页面输入http://localhost:9000/,首次打开会比较慢,因为要初始化数据库信息,默认的登录用户名、密码都为:admin
4.部署SonarQube Scanner
SonarQube Scanner
下载地址:https://docs.sonarqube.org/display/SCAN/Analyzing+Source+Code
将下载的SonarQube Scanner包解压
将解压后的bin目录路径加入到环境变量中
5.使用SonarQube Scanne扫描代码
打开要进行代码分析的项目根目录,新建sonar-project.properties文件
#sonar-project.properties内容如下 sonar.projectKey=project_key sonar.projectName=project_name sonar.projectVersion=1.0 sonar.sources=./
#需要扫描哪种语言的代码,如python:py,java:java sonar.language=py sonar.sourceEncoding=UTF-8 #sonar.host.url=http://your_host:your_port/[your_prefix]
使用scanner,只需三步,即可完成
6.打开CMD命令行
7.cd进入项目目录
8.输入sonar-scanner命令
|
|