1. 使用目的 Sonar对于从事IT的人员而言,应该并不陌生,我们既可以通过给开发工具例如Eclipse、STS、MyEclipse安装sonarlint插件,监控开发人员所写的每一行代码,也可以通过sonarqube服务的安装体系尽早发现开发源码中的缺陷。通过对源码的分析,使得测试人员可以发现源码中无效引用、注释缺失、模块设计复杂等代码问题。 2. 环境搭建2.1 对于测试而言的sonarqube服务搭建 2.1.1 JDK的安装 目前针对主流的sonarqube6.5而言支持的JDK版本为1.8,当然安装JDK的时候请先核对自己的电脑系统,Windows32位的电脑系统对应安装32位的jdk1.8,Windows64位的系统安装对应的64位jdk。切记安装的jdk位数必须与自己的电脑系统一致。 2.2.2 Mysql的安装 这里有几点说明供大家参考: (1)Windows 10系统的朋友们必须选择安装Mysql56的版本;Windows10以下的系统可选择性安装mysql56或者mysql57的版本,值得说明的是sonarqube对Mysql56的版本兼容性较好,个人建议大家安装Mysql56版本。 (2)安装过程中需要注意的问题是: 第一步: 只安装Mysql的server端即可; 第二步:安装完毕之后,要启用本地服务,去启动mysql57(具体服务名称是什么要看最终本地服务的名称是什么)服务。 (3)安装完Mysql的服务之后在C:ProgramDataMySQLMySQL Server 5.7目录下找到my.ini文件,在文件中找到max allowed packet=4M将其修改为:max allowed packet=200M; 2.2.3 Mysql访问工具的安装 这里安装的软件大家可以自行选择,我自己使用的是dbeaver.exe,也可以使用Navicat for mysql或者是小青蛙toad等等。 安装完毕后,新建一个本地连接,建立一个数据库叫做sonar: 建立完成即可,这个数据库会保存以后sonarqube服务扫描出的结果。 2.2.4 sonarqube服务安装 最后从sonar官网上下载sonarqube服务,下载地址:https://www.sonarqube.org/downloads/请注意sonarqube服务类似于tomcat服务,下载到本地之后,免安装,直接找到期bin目录下,打开即可。当然打开sonarqube服务前请确认本地数据库服务已经完全启动。 (1)这里需要注意的是: Windows 32位系统启动服务时需要选择:windows-x86-32文件夹下的StartSonar.bat命令双击执行即可启动sonarqube服务。 Windows 64位系统启动服务时需要选择:windows-x86-64文件夹下的StartSonar.bat命令双击执行即可启动sonarqube服务。 (2)启动sonarqube服务 (3)启动服务后,打开浏览器输入http://localhost:9000推荐谷歌浏览器 显示如下图即表示sonarqube成功被安装并且被启用。 (4)配置sonarqube,安装启动成功后需要对其进行配置: 打开Sonarqube安装目录D:soanrsonarqube-6.5conf下的sonar.properties文件,在#----- MySQL 5.6 or greater下输入如下信息: 如下图位置: sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false sonar.jdbc.username=root sonar.jdbc.password=root sonar.sorceEncoding=UTF-8 sonar.login=admin sonar.password=admin url是数据库连接地址,username是数据库用户名,jdbc.password是数据库密码,login是sonarqube的登录名,sonar.password是sonarqube的密码。 配置完成后重启sonarqube服务,再次访问http://localhost:9000,耗时很长,因为要初始化数据库信息。(关闭服务后要杀掉任务管理器下的java.exe进程)。启动成功后登陆,用户名:admin,密码:admin。 (5)汉化sonarqube 大家肯定看不惯纯英文的界面,我们可以对其进行汉化,很简单,步骤如下: 第一步:用第(4)配置的sonar.password和sonar.login登录sonarqube服务的web界面操作System下的Update Center(如图) 第二步:操作【Available】,在该页面选择Chinese Pack(如图)请注意这里可能会安装插件失败,原因是因为你的浏览器问题,换个浏览器重新安装即可,建议使用谷歌浏览器进行安装,效果最佳; 第三步:安装后重启SonarQube服务,重新登录页面显示如下图。 3. 实施 实施的话非常简单,我们要借助另一个工具叫做sonar-scanner (1)下载地址: https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner 文件名:sonar-scanner-cli-3.0.3.778-windows(如图) (2)Sonar-scanner安装配置 解压sonar-scanner-cli-3.0.3.778-windows。 在D:soanrsonar-scanner-3.0.3.778-windowsconf文件夹下打开sonar-scanner.properties文件,配置信息如下(请注意这是根据本地服务搭建的如果是自己的项目,请将sonar.jdbc.url自行修改为自己项目所在服务的数据库): sonar.host.url=http://localhost:9000/ sonar.sourceEncoding=UTF-8 sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8 sonar.jdbc.username=sonar sonar.jdbc.password=sonar sonar.login=admin sonar.password=admin 配置环境变量: 变量名Name=SONAR_RUNNER_HOME 变量值Value=D:soanrsonar-scanner-3.0.3.778-windows(如图) 打开path,输入%SONAR RUNNER HOME%bin; 在命令行窗口输入sonar-scanner -version出现以下信息,则表示环境变量设置成功(如图)。 (3)sonar-scanner执行 打开要进行代码分析的项目根目录,新建sonar-project.properties文件,输入以下信息: sonar.projectKey=Juzai sonar.projectName=Helloworld sonar.projectVersion=1.1 sonar.ce.workerCount=1 sonar.language=java sonar.sources=comm-test sonar.java.binaries=Webdriver/bin sonar.ce.javaOpts=-Xmx2560m -Xms853m -XX:+HeapDumpOnOutOfMemoryError sonar.ce.workerCount=1 其中sonar.projectName为项目名称sonar.java.binaries为二进制文件即.class文件所在的路径sonar.sources为对应项目的根目录。 设置成功后,启动sonarqube服务,并启动cmd。在cmd进入项目所在的根目录,输入命令:sonar-scanner,分析成功后会出现下图: 此时打开sonarqueb服务器会出现项目的相关信息,如下图所示: 此时我们点开我们测试关注的问题一栏: 所有的BUG就都会在这里。当然sonar还可以从开发角度进行使用,通过在开发工具中安装sonarlint插件,实现代码的即时监控,并将开发项目与sonarqube服务进行绑定,即可以使用sonarqube服务的配置和规则,并且sonar还可以与maven等工具进行集成。大家有兴趣的话可以下去自行研究下。