在Fedora 21上搭建Jenkins+SonarQube的Maven项目自动化测试平台
自动化测试是敏捷开发模型下的一大助力,有了它,测试及开发团队能及时的掌控软件质量和迭代周期,能更好的为软件产品服务,促进软件质量的提升和提高开发的效率.
好处很多,我就不一一说明了.
最近,公司将要开发新产品(分校系统),为了避免敏捷开发下无序,沟通不畅,质量不高等等缺点,决定上自动化测试平台,解放测试团队,让其专注于更多的业务理解工作,也从另一个方面规范所有程序员的开发.
好了,废话不多说,上硬货.
准备阶段
首先需要下载SonarQube和Jenkins.另外,还要先安装好MySQL数据库和JDK.其中,JDK版本至少在1.7以上.
- SonarQube官方下载地址:http://www.sonarqube.org/downloads/
- Jenkins官方下载地址:http://pkg.jenkins-ci.org/redhat/
一. 安装SonarQube:
- 将下载好的sonar压缩包上传到服务器,目录自己定.我这里使用的是~/Download目录
- 解压,命令是:
unzip sonarqube-5.1.1.zip
解压好了之后,在/usr文件夹下创建sonar目录,并将解压出来的文件夹复制到其中,然后更改权限.sudo mkdir /usr/sonar sudo cp sonarqube-5.1.1 /usr/sonar/ sudo chown -R admin /usr/sonar/
- 完成之后,需要对SonarQube的配置文件进行更改.位置是: /usr/sonar/sonarqube-5.1.1/conf/sonar.properties
使用命令:vi /usr/sonar/sonarqube-5.1.1/conf/sonar.properties
找到这几行,把注释去掉.这里我们使用mysql,当然,你也可以使用其他的数据库,去掉相应的注释就可以了.sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
#使用0.0.0.0是保证任何地址都可以使用
sonar.web.host=0.0.0.0
#更改默认的9000端口为9005,以避免和NodeJS的端口冲突.
sonar.web.port=9005
更改完成后,保存退出. - 在服务器的mysql数据库中创建sonar库和sonar用户,并授权. mysql -u root -p
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
FLUSH PRIVILEGES;
若还未安装mysql数据库,请自行百度如何在RedHat/Fedora/CentOS上安装mysql数据库并设置为开机启动. - 测试sonar是否安装成功.
/usr/sonar/sonarqube-5.1.1/bin/linux-x86-64/sonar.sh start
看到提示:Starting SonarQube...
Started SonarQube.
则说明安装成功了.这个时候,就可以在终端里输入http://<服务器IP>:9005来查看web页面的图形界面了. - 最后,我们需要让SonarQube开机启动.输入以下命令和内容即可.
sudo ln -s /usr/sonar/sonarqube-5.1.1/bin/linux-x86-64/sonar.sh /usr/bin/sonar sudo vi /usr/lib/systemd/system/sonar.service
在新文件中写入:#然后保存退出.
# Simple Sonar systemd service file
#
# systemd supports lots of fancy features, look here (and linked docs)for a full list:
# http://www.freedesktop.org/software/systemd/man/systemd.exec.html
#
# Note: this file ( /usr/lib/systemd/system/sonar.service ) # will be overwritten on package upgrade, please copy the file to
#
# /etc/systemd/system/sonar.service
#
# to make needed changes.
#
# systemd-delta can be used to check differences between the two sonar.service files.
#
[Unit]
Description=SonarQube System 5.1.1
After=network.target remote-fs.target nss-lookup.target
After=syslog.target
[Install]
WantedBy=multi-user.target
Alias=sonar.service
[Service]
Type=forking
# Execute pre and post scripts as root
PermissionsStartOnly=true
# Start main service
ExecStart=/usr/bin/sonar start
# Reload main service
ExecReload=/usr/bin/sonar restart
# Stop main service
ExecStop=/usr/bin/sonar stop
# Give up if ping don't get an answer
TimeoutSec=600
PrivateTmp=true
这时,你就可以使用强大的systemctl命令来进行SonarQube的启动/重载/停止操作了.
启动命令: sudo systemctl start sonar.service
重启命令: sudo systemctl restart sonar.service
停止明林: sudo systemctl stop sonar.service
开机启动命令: sudo systemctl enable sonar.service
去除开机启动: sudo systemctl disable sonar.service
查看启动状态: sudo systemctl status sonar.service
二.安装Jenkins:
- 我选择了yum安装Jenkins.首先添加库和key.
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
然后输入命令进行yum安装.sudo yum install jenkins
安装包大小约为60M. - 安装完成后,需要修改下Jenkins的端口,避免和tomcat冲突.
sudo vi /etc/sysconfig/jenkins
找到两处地方:JENKINS_PORT="8080"
JENKINS_AJP_PORT="8009"
将其修改为(端口号可以随意改,只要不和其他的程序冲突就好):JENKINS_PORT="8189"
JENKINS_AJP_PORT="8190"
- 使用命令: sudo systemctl start jenkins.service 启动Jenkins服务,在客户机的浏览器地址栏中输入: http://<服务器IP>:8189 即可看到Jenkins的页面了.如图:
- 如果启动发生错误,提示未找到/usr/bin/java,则说明你的jdk配置不对.可以使用java –version查看是否安装成功和版本是否正确.如果没问题,还是依旧报这个错误,可以复制一下JDK的版本号:例如 1.8.0_45. 然后,找到
/etc/init
.d
<code>/jenkins这个文件,编辑它.
sudo vi /etc/init.d/jenkins
<code><br>找到这段代码: <br>
candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.6.0/bin/java
/usr/lib/jvm/jre-1.6.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/bin/java"
<code><br>发现没有我们的JDK文件目录,添加
/usr/java/jdk1.8.0_45/bin/java
<code><br>到这段代码之后,效果如此:
candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.6.0/bin/java
/usr/lib/jvm/jre-1.6.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/bin/java
/usr/java/jdk1.8.0_45/bin/java
"<br>保存退出,然后启动,成功! <br>至此,Jenkins安装完毕.
接下来,我们需要配置Jenkins中的sonar插件. <br>在浏览器中输入http://<服务器IP>:8189来访问Jenkins的主页,点击左侧的”系统管理”.如图: <br><img src="https://cdn.ancii.com/article/image/v1/ym/cF/LX/XLcmFy3IuE2WVXEC2TxDKL04XTMy35jI8ZztzEtlj_2RqEtQYPSERWu5slDb4qk1vvLcp_aS2FDQyxEJfJC9Xg.png" title="在Fedora 21上搭建Jenkins+SonarQube的Maven项目自动化测试平台" alt="在Fedora 21上搭建Jenkins+SonarQube的Maven项目自动化测试平台" /> <br><br>再选择”管理插件” <br><img src="https://cdn.ancii.com/article/image/v1/ym/cF/LX/XLcmFy3IuE2WVXEC2TxDKL04XTMy35jI8ZztzEtlj_2RqEtQYPSERWu5slDb4qk1ABimHH1Tj_pc3c-DPPikhA.png" title="在Fedora 21上搭建Jenkins+SonarQube的Maven项目自动化测试平台" alt="在Fedora 21上搭建Jenkins+SonarQube的Maven项目自动化测试平台" /> <br><br>选择”可选插件”,在右上角的搜索栏中输入sonar,然后在”SonarQube Plugin”前面打钩,点击”直接安装”按钮,等待重启.页面刷新后,就安装好了插件了. <br><br>配置SonarQube插件,同样是在”系统管理”中的”系统设置”中,找到如图位置: <br><br><img src="https://cdn.ancii.com/article/image/v1/ym/cF/LX/XLcmFy3IuE2WVXEC2TxDKL04XTMy35jI8ZztzEtlj_2RqEtQYPSERWu5slDb4qk10VcYCkF5KISRl-tS45umuw.png" title="在Fedora 21上搭建Jenkins+SonarQube的Maven项目自动化测试平台" alt="在Fedora 21上搭建Jenkins+SonarQube的Maven项目自动化测试平台" /> <br><br>如果从未添加过SonarQube,则点击”Add SonarQube”,然后点击”高级”.如图: <br><br><img src="https://cdn.ancii.com/article/image/v1/ym/cF/LX/XLcmFy3IuE2WVXEC2TxDKL04XTMy35jI8ZztzEtlj_2RqEtQYPSERWu5slDb4qk1zkSc26vo93pTXqR4nAE9vw.png" title="在Fedora 21上搭建Jenkins+SonarQube的Maven项目自动化测试平台" alt="在Fedora 21上搭建Jenkins+SonarQube的Maven项目自动化测试平台" />
填入相应的内容,就配置好了。
Jenkins 的详细介绍:请点这里
Jenkins 的下载地址:请点这里