阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

在Fedora 21上搭建Jenkins+SonarQube的Maven项目自动化测试平台

135次阅读
没有评论

共计 5137 个字符,预计需要花费 13 分钟才能阅读完成。

自动化测试是敏捷开发模型下的一大助力, 有了它, 测试及开发团队能及时的掌控软件质量和迭代周期, 能更好的为软件产品服务, 促进软件质量的提升和提高开发的效率.

好处很多, 我就不一一说明了.

最近, 公司将要开发新产品 (分校系统), 为了避免敏捷开发下无序, 沟通不畅, 质量不高等等缺点, 决定上自动化测试平台, 解放测试团队, 让其专注于更多的业务理解工作, 也从另一个方面规范所有程序员的开发.

好了, 废话不多说, 上硬货.

准备阶段

首先需要下载 SonarQube 和 Jenkins. 另外, 还要先安装好 MySQL 数据库和 JDK. 其中,JDK 版本至少在 1.7 以上.

  • SonarQube 官方下载地址:http://www.sonarqube.org/downloads/
  • Jenkins 官方下载地址:http://pkg.jenkins-ci.org/redhat/

一. 安装 SonarQube:

  1. 将下载好的 sonar 压缩包上传到服务器, 目录自己定. 我这里使用的是~/Download 目录
  2. 解压, 命令是:
    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/
  3. 完成之后, 需要对 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

    更改完成后, 保存退出.

  4. 在服务器的 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 数据库并设置为开机启动.

  5. 测试 sonar 是否安装成功.
    /usr/sonar/sonarqube-5.1.1/bin/linux-x86-64/sonar.sh start

    看到提示: 

    Starting SonarQube…
    Started SonarQube.

    则说明安装成功了. 这个时候, 就可以在终端里输入 http://< 服务器 IP>:9005 来查看 web 页面的图形界面了.

  6. 最后, 我们需要让 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 dont 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:

  1. 我选择了 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.

  2. 安装完成后, 需要修改下 Jenkins 的端口, 避免和 tomcat 冲突.
    sudo vi /etc/sysconfig/jenkins

    找到两处地方:

    JENKINS_PORT=”8080″

    JENKINS_AJP_PORT=”8009″
    将其修改为 (端口号可以随意改, 只要不和其他的程序冲突就好):

    JENKINS_PORT=”8189″

    JENKINS_AJP_PORT=”8190″

  3. 使用命令:  sudo systemctl start jenkins.service  启动 Jenkins 服务, 在客户机的浏览器地址栏中输入:  http://< 服务器 IP>:8189  即可看到 Jenkins 的页面了. 如图:
    在 Fedora 21 上搭建 Jenkins+SonarQube 的 Maven 项目自动化测试平台
  4. 如果启动发生错误, 提示未找到 /usr/bin/Java, 则说明你的 jdk 配置不对. 可以使用 java –version 查看是否安装成功和版本是否正确. 如果没问题, 还是依旧报这个错误, 可以复制一下 JDK 的版本号: 例如 1.8.0_45. 然后, 找到 /etc/init.d/jenkins 这个文件, 编辑它.
    sudo vi /etc/init.d/jenkins


    找到这段代码:

    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

    " 


    发现没有我们的 JDK 文件目录, 添加

    /usr/java/jdk1.8.0_45/bin/java


    到这段代码之后, 效果如此:

    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


    保存退出, 然后启动, 成功!
    至此,Jenkins 安装完毕.

  5. 接下来, 我们需要配置 Jenkins 中的 sonar 插件.
    在浏览器中输入 http://< 服务器 IP>:8189 来访问 Jenkins 的主页, 点击左侧的”系统管理”. 如图:
    捕获 1

    再选择”管理插件”
    捕获 2

    选择”可选插件”, 在右上角的搜索栏中输入 sonar, 然后在”SonarQube Plugin”前面打钩, 点击”直接安装”按钮, 等待重启. 页面刷新后, 就安装好了插件了.

    配置 SonarQube 插件, 同样是在”系统管理”中的”系统设置”中, 找到如图位置:

    image

    如果从未添加过 SonarQube, 则点击”Add SonarQube”, 然后点击”高级”. 如图:

    在 Fedora 21 上搭建 Jenkins+SonarQube 的 Maven 项目自动化测试平台

填入相应的内容, 就配置好了。

局域网内利用 GitLab+Jenkins 自动生成 GitBook 并发布 (Nginx)  http://www.linuxidc.com/Linux/2016-05/131136.htm

Linux+Git+Maven+Jenkins+Neuxs 自动化编译环境搭建 http://www.linuxidc.com/Linux/2016-02/128652.htm

在 CentOS 7 上安装 Jenkins  http://www.linuxidc.com/Linux/2016-11/137548.htm

CentOS6 安装 Jenkins  http://www.linuxidc.com/Linux/2016-05/131365.htm

使用 Jenkins 配置 Git+Maven 的自动化构建 http://www.linuxidc.com/Linux/2016-02/128641.htm

Jenkins+Maven+Git 搭建持续集成和自动化部署的配置手记 http://www.linuxidc.com/Linux/2015-06/118606.htm

Jenkins 的分布式构建及部署——节点  http://www.linuxidc.com/Linux/2015-05/116903.htm

Jenkins+Gitlab+Sonar 代码检查平台搭建  http://www.linuxidc.com/Linux/2017-01/139900.htm

Jenkins 的详细介绍 :请点这里
Jenkins 的下载地址 :请点这里

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-02/140780.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计5137字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中