大家好,我叫山猫,一名在测试开发道路上的新手,是xxx全栈测开训练营上一期的学员。第一阶段的学习已然结束,收获颇多,了解了很多在自己平时测试工作无法接触到的新知识,比如这次在这里分享的
1. 什么是SonarQube
可以基于现有的
优点:
◆ 支持众多计算机编程语言
◆ 通过插件机制能集成IDE、Jenkins、Git等
◆ 内置大量常用代码检查规则
◆ 支持定制开发规则
◆ 可视化界面
◆ 支持从可靠性、安全性、可维护性、覆盖率、重复率等 方面分析项目
具体的配置及文档可以访问下面的链接查看:
https://www.sonarqube.org/downloads/ https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
2. Jenkins插件安装及配置
在插件管理中搜索名为
安装好插件后,还需要配置相应的服务和工具信息:
2.1. 系统设置->SonarQube servers
-
name:可自定义)
-
server url:这个地址就是你sonar服务所在的地址
-
token:在sonar项目中生成的token
2.2. 全局工具配置》SonarQube Scanner
建议不采用自动安装,使用手动下载配置好的sonar scanner
-
name:自定义sonar scanner名称,建议使用sonar-scanner
-
SONAR_RUNNER_HOME:sonar scanner所在的家目录
3. 自由风格的job使用sonar
3.1 配置代码仓库地址:
3.2 勾选sonarqube 服务并选择token:
3.3 在构建中添加Exeute SonarQube Sanner
这里可以使用两种方式:
-
a. 直接将sonar-project.properties配置内容写到 Analysis properties 中
-
b. 将配置好的sonar-project.properties文件放置在代码目录中,在 Path to project properties 配置相应的文件名
建议使用第二种方式来管理我配置的
保存好后,就可以来构建了。构建后项目页面可以直接跳转到sonarqube服务查看。
4. pipeline流水线使用sonar
4.1 构建一个流水线job,流水线pipeline script如下编写:
pipeline { agent any stages { stage('拉取代码') { steps { git credentialsId: 'gitee', url: 'https://gitee.com/dx0001/work.git' } } stage('静态代码静态扫描') { steps { withSonarQubeEnv('sonarqube'){ bat "sonar-scanner" } } } }
注意:这里的名称是在Jenkins中系统管理--sonarqube servers添加的名称 同样的,设置好job后就可以构建进行代码扫描了。
5. 接入Sonar质量门禁
通过上面的job,只是代码扫描可能无法满足日常的情况,当扫描的结构不满足时我可能就不进行后面的步骤了,这样的情况,我们就需要接入质量门禁的方式来实现。
5.1 在sonar服务端的质量阀中设置质量门禁,添加要运用的项目
质量配置->质量阀
这里可以添加指标来定义通过扫描的条件。然后将设置的质量阀分配给要扫描的项目。
5.2 在sonar服务端的配置里面添加网络调用hook
配置->网络调用
这里添加Jenkins调用的地址,用来回调扫描的结果。URL配置为:Jenkins地址+/sonarqube-webhook
5.3 流水线改造
pipeline { agent any stages { stage('拉取代码') { steps { git credentialsId: 'gitee', url: 'https://gitee.com/dx0001/work.git' } } stage('静态代码静态扫描') { steps { withSonarQubeEnv('sonarqube'){ bat "sonar-scanner" } } } stage('检查结果分析') { steps { script{ timeout(5){ def qg=waitForQualityGate() echo "结果状态:${qg.status}" if(qg.status!='OK') error '未达到代码门禁要求!' } } } } } }
在上面的流水线的job上增加一个“检查结果分析”的步骤,使用
6. 小结
此次分享就到这里了,更多的是自我知识沉淀的过程,第一阶段的学习虽已结束,但对于我更多的是开始,很多的知识需要自己动手搭环境来实践,我很享受这个过程。将一个个知识落实,弄清楚,是一件令我非常高兴的事情。接触并学习更多测试开发的知识,在测试的道路上越走越宽,越走越远,为此,奋力前进!
总结
最后我也整理了一些软件测试学习资料,对于自学软件测试的小伙伴来说应该会很有帮助,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这份资料也已经帮助了很多的软件测试的学习者,希望也能帮助到你。关注我的微信公众号:开心螺蛳粉,即可免费获取!
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。