软件测试 | Sonarqube架构

147 阅读2分钟

SonarQube 是一个开源的代码分析平台, 用来持续分析和评测项目源代码的质量。 通过SonarQube我们可以检测出项目中重复代码, 潜在bug, 代码规范,安全性漏洞等问题, 并通过SonarQube web UI展示出来

sonarQube是什么?

1、代码质量和安全扫描和分析平台。

2、多维度分析代码:代码量、安全隐患、编写规范隐患、重复度、复杂度、代码增量、测试覆盖率等。

3、支持25+编程语言的代码扫描和分析,包含java\python\C#\javascript\go\C++等。

4、涵盖了编程语言的静态扫描规则: 代码编写规范+安全规范。

5、能够与代码编辑器、CI/CD平台完美集成。

6、能够与SCM集成,可以直接在平台上看到代码问题是由哪位开发人员提交。

7、帮助程序猿写出更干净、更安全的代码。

静态扫描主要针对开发人员编写的源代码。

通过定义好的 代码质量和安全规则,对开发人员编写的代码进行扫描和分析。

将分析的结果多维护的呈现出来,以方便开发人员进行代码的优化和规范编写。

sonarQube如何工作?

sonar静态代码扫描由2部分组成:sonarQube平台,sonar-scanner扫描器。

sonarQube: web界面管理平台。

​ 1)展示所有的项目代码的质量数据。

​ 2)配置质量规则、管理项目、配置通知、配置SCM等。

sonarScanner: 代码扫描工具。

​ 专门用来扫描和分析项目代码。支持20+语言。

​ 代码扫描和分析完成之后,会将扫描结果存储到数据库当中,在sonarQube平台可以看到扫描数据。

sonarqube架构

image.png

部署

临时性的部署

docker run -d --name sonarqube \
-p 9000:9000 -p 9092:9092 \
sonarqube

正式部署,最新版本的sonarqube不再支持mysql了

docker run -d \
 --name sonarqube_postgres \
 -e POSTGRES_USER=sonarqube \
 -e POSTGRES_PASSWORD=sonarqube \
 -e PGDATA=/var/lib/postgresql/data/pgdata \
 -v $PWD/postgresql:/var/lib/postgresql/data \
 postgres
mkdir sonarqube_data sonarqube_extensions sonarqube_logs
chown -R 999:999 sonarqube_data sonarqube_extensions sonarqube_logs
docker run -d --name sonarqube_hogwarts -p 9000:9000 -p 9092:9092 --link 
sonarqube_postgres:db \
 -e SONARQUBE_JDBC_USERNAME=sonarqube -e SONARQUBE_JDBC_PASSWORD=sonarqube \
 -e SONARQUBE_JDBC_URL="jdbc:postgresql://db/sonarqube" \
 -v $PWD/sonarqube_data:/opt/sonarqube/data \
 -v $PWD/sonarqube_extensions:/opt/sonarqube/extensions \
 -v $PWD/sonarqube_logs:/opt/sonarqube/logs \
sonarqube

默认配置

用户名密码:admin admin

image.png

sonarqube的代码分析流程

搜索微信公众号:TestingStudio霍格沃兹的干货都很硬核