测试左移——代码审计SonarQube 平台搭建

2779 篇文章 4 订阅
2619 篇文章 15 订阅

01 sonarqube代码分析技术体系

代码分析工具

IDE 辅助功能

  • xcode、android studio

  • 阿里巴巴 java 开发手册 ide 插件支持

独立的静态分析工具

  • spotbugs、findbugs、androidlint、scan-build、Checkstyle、FindSecBugs

  • pmd 阿里巴巴 java 开发手册 pmd 插件

综合性的代码分析平台

  • sonarqube 功能强大,数据分析全面

代码分析技术架构

代码静态检查

1、代码分析:通过分析语法树和源代码,检查代码规范

  • lint 系列 style 系列 pmd

  • antlr

2、编译器分析:借助于编译器获得代码关系

字节码静态分析

  • 分析 jar、war、dex 等格式的文件,代表工具:findbugs asm

语法树分析技术

图片

源代码

字节码分析技术 Java 与 Kotlin 源代码

图片

SonarQube

代码质量和安全的领先产品

17种语言的静态代码分析

检测Bug和漏洞

查看安全热点

跟踪代码气味并修复您的技术债务

代码质量度量和历史

CI/CD集成

可扩展,具有50多个社区插件

图片

代码分析主要指标

图片

代码分析细节指标

图片

度量指标总结

可靠性 bugs

可维护性 code smells

安全性 Vulnerabilities Security Hotspots

覆盖率 Coverage Unit Tests

代码重复 Duplications

代码规模 Lines of Code Comments rate

复杂度 Cyclomatic Complexity Cognitive Complexity

图片

案例分析

1、独立分析平台使用案例

图片

2、持续集成使用案例

图片

3、Sonarqube经典案例分析

图片

图片

图片

目前大部分公司都采用了 sonarqube,它的概念和技术指标已经成为行业事实上的标准

02 代码审计SonarQube平台搭建

sonarqube 技术架构

图片

正式环境部署

1.创建网络

2.创建数据库容器实例

  • -e POSTGRES_USER=sonarqube:设置数据库用户名

  • -e POSTGRES_PASSWORD=sonarqube:设置数据库密码

  • -e PGDATA=/var/lib/postgresql/data/pgdata:指定数据库的位置

  • -v $PWD/postgresql_data:/var/lib/postgresql/data:把数据映射到当前目录下的postgresql_data中:即使容器销毁了,重新创建一个,数据不会丢

图片

3、创建sonarqube容器实例

创建sonarqube容器实例,可以通过-Xms4g -Xmx4g增加下ES的堆内存大小

mac环境需要加 -e SONAR_SEARCH_JAVAADDITIONALOPTS=“-Dbootstrap.system_call_filter=false”

  • platform linux/x86_64:在mac上需要加这条命令

  • -e SONARQUBE_JDBC_USERNAME=sonarqube

  • -e SONARQUBE_JDBC_PASSWORD=sonarqube \:设置数据库的用户名和密码

  • -v $PWD/sonarqube_data:/opt/sonarqube/data

  • -v $PWD/sonarqube_extensions:/opt/sonarqube/extensions

  • -v $PWD/sonarqube_logs:/opt/sonarqube/logs \:宿主机和容器映射

图片

4、检查容器启动成功

[root@mylinux1 ~]# docker ps

CONTAINER ID   IMAGE                       COMMAND                   CREATED              STATUS              PORTS                                                                                  NAMES

de81187b3504   sonarqube:8.9.2-community   "bin/run.sh bin/sona…"   About a minute ago   Up About a minute   0.0.0.0:9000->9000/tcp, :::9000->9000/tcp, 0.0.0.0:9092->9092/tcp, :::9092->9092/tcp   sonarqube_hogwarts

532e9ed4212d   postgres                    "docker-entrypoint.s…"   9 minutes ago        Up 9 minutes        5432/tcp                                                                               sonarqube_postgres

60ed0289df5b   registry:2                  "/entrypoint.sh /etc…"   4 months ago         Up 42 hours         0.0.0.0:5000->5000/tcp, :::5000->5000/tcp  

5、环境配置

默认账号 admin:admin

生成 token

划分组与用户

登录页面

图片

首页

图片

  • projects:项目列表(大部分项目是自动创建)

  • issues:发现的问题

  • rules:制定的规则

  • quality profiles::定制规则

  • quality gates:质量门禁

  • administration:管理

6、环境变量设置

为了方便命令复用,后面命令中可变内容使用环境变量来表示 $SQ_HOST

图片

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

软件测试面试文档

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值