转载:持续集成Jenkins+sonarqube部署教程

转载:html

持续集成Jenkins+sonarqube部署教程

 
 

1 引言

1.1 文档概要

本文主要介绍jenkins,sonar的安装与集成,基于ant,maven构建。用一个例子介绍jenkins的编译打包部署,代码检查。最后集成jenkins。(现阶段只是简易的集成,后续须要修改accio源码作深度集成)java

1.2 预计读者

系统配置管理员:要懂得搭建持续集成环境,有问题能够排查;
架构师:了解持续集成实现原理,协助项目接入持续集成。项目在持续集成环境运行中,进行维护、分析构建异常等;
维护人员:重启服务、排查环境问题、项目接入支持;python

1.3 关于持续集成

提供一套能够持续集成项目流程。可以给接入的项目提供每日构建、自动化测试的支持,提升项目质量、节省项目成本。mysql

2 预装软件

软件名称 平台 备注
jdk1.7.0_17 Win7 操做系统
apache-ant-1.9.6 Win7 Ant
apache-tomcat-6.0.13 Win7 Tomcat容器linux

3 安装列表

软件名称 平台 备注
Jenkins Win7 端口 8080
sonarqube-5.1.2 Win7 端口 9000
sonar-runner-2.4 Win7
nexus-2.7.1-01 Linux Maven私有服务web

4 jenkins安装步骤

4.1 安装Jenkins服务端

从jenkins官网下载jenkins:https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins点击“download jenkins.war”面试

下载的为jenkins.zip将其更改成jenkins.war包,有两种运行方式
1. 运行 java -jar jenkins.war,采用内置jetty服务器。
2. 将下载的war包文件部署到 servlet 容器,而后启动容器(推荐这种方式)。
用浏览器打开http://localhost:8080/ jenkins,访问Jenkins主页。
sql

安装成功!数据库

4.2 修改jenkins工做空间

Jenkins的默认工做间在C:\Users\xxxxxx.jenkins,修改工做空为间D:\jenkins,只须要添加环境变量
JENKINS_HOME=D:\jenkins

重启jenkins;apache

4.3 基本配置

配置JAVA_HOME \ANT_HOME\。只有配置了这三项,Jenkins才能支持Ant构建的Jave项目。
地址:
JAVA_HOME=D:\Program Files (x86)\Java\jdk1.7.0_17
ANT_HOME=D:\ant-1.6.5

用浏览器打开http://localhost:8080/ ,访问Jenkins主页。
点击“系统管理”页面

1. Utf-8编码
Your container doesn't use UTF-8 to decode URLs. If you use non-ASCII characters as a job name etc, this will cause problems. See Containers and Tomcat i18n for more details.

Jenkins建议在tomcat中使用utf-8编码,配置tomcat下conf目录的server.xml文件

2.系统设置
在已运行的Jenkins主页中,点击左侧的系统管理—>系统设置进入以下界面:

3.JDK、Ant配置


4.Jenkins Location配置

5.邮件通知配置

注意:若是使用qq邮箱须要开通SMTP服务,打开邮箱点击“设置”》“帐户”

4.4 邮件插件安装

Jenkins默认的邮件发送功能很是弱,多人发送、按状况发送、邮件模板都支持很差,所以须要按照加强版的邮件插件。
用浏览器打开http://localhost:8080/ ,访问Jenkins主页。
点击“系统管理”-》“管理插件”

选择“可选插件”卡片,显示出全部能够下载安装的插件。选择“Email Extension Plugin”插件,点击 按钮。

等待插件安装完成后,登陆到服务器上,重启Jenkins服务!
服务重启后,用浏览器打开http://localhost:8080/ ,访问Jenkins主页。
点击“系统管理”-》“系统设置”
看到“Extended E-mail Notification”主题配置单元,就证实配置成功。


email-ext插件容许使用变量来动态插入数据到邮件的主题和内容主体中。变量是一个以$(美圆符号)开始,并以空格结束的字符串。当一个邮件触发 时,主题和内容主体字段的全部变量都会经过真实的值动态地替换。一样,变量中的“值”能包含其它的变量,都将被替换成真实的内容。

邮件的内容以下:

项目名称:$PROJECT_NAME



构建编号:$BUILD_NUMBER


svn版本号:${SVN_REVISION}


构建状态:$BUILD_STATUS


触发缘由:${CAUSE}


构建日志地址: ${BUILD_URL}console


构建地址: $BUILD_URL


变动集:${JELLY_SCRIPT,template="html"}


全局属性详解
1. Override Global Settings:若是不选,该插件将使用默认的E-mail Notification通知选项。反之,您能够经过指定不一样于( 默认选项)的设置来进行覆盖。
2. Default Content Type:指定构建后发送邮件内容的类型,有Text和HTML两种.
3. Use List-ID Email Header:为全部的邮件设置一个List-ID的邮件信头,这样你就能够在邮件客户端使用过滤。它也能阻止邮件发件人大部分的自动回复(诸如离开办公 室、休假等等)。你可使用你习惯的任何名称或者ID号,可是他们必须符合以下其中一种格式(真实的ID必需要包含在<和>标记里):

Build Notifications
“Build Notifications”
关于更详细的List-ID说明请参阅RFC-2919.
4. Add 'Precedence: bulk' Email Header:设置优先级,更详细说明请参阅RFC-3834.
5. Default Recipients:自定义默认电子邮件收件人列表。若是没有被项目配置覆盖,该插件会使用这个列表。您能够在项目配置使用$ DEFAULT_RECIPIENTS参数包括此默认列表,以及添加新的地址在项目级别。添加抄送:cc:电子邮件地址例 如,CC:someone@somewhere.com
6. Reply To List:回复列表, A comma separated list of e-mail addresses to use in the Reply-To header of the email. This value will be available as $DEFAULT_REPLYTO in the project configuration.
7. Emergency reroute:若是这个字段不为空,全部的电子邮件将被单独发送到该地址(或地址列表)。
8. Excluded Committers:防止邮件被邮件系统认为是垃圾邮件,邮件列表应该没有扩展的帐户名(如:@domain.com),而且使用逗号分隔
9. Default Subject:自定义邮件通知的默认主题名称。该选项能在邮件的主题字段中替换一些参数,这样你就能够在构建中包含指定的输出信息。
10. Maximum Attachment Size:邮件最大附件大小。
11. Default Content:自定义邮件通知的默认内容主体。该选项能在邮件的内容中替换一些参数,这样你就能够在构建中包含指定的输出信息。
12. Default Pre-send Script:默认发送前执行的脚本(注:grooy脚本,这是我在某篇文章上看到的,不必定准确)。
13. Enable Debug Mode:启用插件的调试模式。这将增长额外的日志输出,构建日志以及Jenkins的日志。在调试时是有用的,但不能用于生产。
14. Enable Security:启用时,会禁用发送脚本的能力,直接进入Jenkins实例。若是用户试图访问Jenkins管理对象实例,将抛出一个安全异常。
15. Content Token Reference:邮件中可使用的变量,全部的变量都是可选的。
邮件:

详细配置能够参考 https://wiki.jenkins-ci.org/display/JENKINS/Email-ext+plugin

4.5 权限插件安装

点击“系统管理”-》“管理插件”》“可选插件” 在搜索框输入“Role-”点“直接下载”


点击“系统管理”-》“Configure Global Security”

点击“系统管理”-》“Manage and Assign Roles”

点击“Manage Role”,Role to add 新增角色。

点击点击“系统管理”》“管理用户”新增用户

点击“Assign Roles”,User/group to add ,给用户添加相应的权限

注意: 若是给anonymous新增admin权限,系统不用登录也具备admin权限,因此其余的角色权限都是失效状态。

4.6 自动部署插件安装

点击“系统管理”-》“管理插件”》“可选插件”搜索“Deploy to container Plugin”,“直接下载”

配置tomcat权限,在tomcat的conf目录下修改tomcat-users.xml,添加一下内容。









4.7 构建一个自由风格的项目

在已运行的Jenkins主页中,点击左侧的新建Job进入以下界面:

输入项目名称选择jdk(jdk已经在全局配置中配置)

填写项目的snv地址

配置触发器 ,“H/15 * ***”表示每一个15分钟检查svn有没有更新,有更新则从新打包。

选择项目构建工具,本例中使用ant,ant已经在全局配置中配置。

配置构建完成自动部署,部署须要安装deploy插件,安装方法同邮件插件安装。若是是集群部署则须要点击“Add Container”新增须要部署的容器。

看到以下日志说明部署成功

配置邮件插件

点击“保存”。进行项目构建,点击“当即构建”

点击构建日期右边的小三角,

点击“Console Output”查看构建日志

测试项目自动构建打包,打包完成后部署到远程服务器。

5 Sonar安装

5.1 Sonar安装

下载sonar http://www.sonarqube.org/downloads/,下载后sonar是一个zip包解压便可。1
下载完后解压客户端,随意放置一个地方
如 我放置于D:\
进入进入D:\sonarqube-5.1.2\bin这里须要注意,选择32或者64是对应你配置的JDK)

建立数据库,默认数据库H2,这里咱们修改成mysql
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;

修改sonar.properties文件

添加以下内容,sonar默认自带mysql驱动。
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://10.10.5.64:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
sonar.jdbc.driverClassName=com.mysql.jdbc.Driver

运行“StartSonar.bat”

访问9000端口,sonar默认自带了jetty服务器。默认用户名密码 admin、admin。一些设置和菜单只有在登录以后才能看到。

安装sonar汉化包,点击“配置”》“系统”》“更新中心”》“Arailable Plugins”选择“Chinese Pack”,因为我已经安装了汉化包因此没有列出。


安装完成后在“installed Plugins”能够看到该插件。记得重启后,记得刷新一下浏览器

5.2 安装sonar-runner

下载:http://www.sonarqube.org/downloads/

下载后解压

修改conf目录下的sonar-runner.properties文件,新增以下内容,数据库

sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://10.10.5.64:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
sonar.jdbc.driverClassName=com.mysql.jdbc.Driver
配置环境变量,将D:\sonar-runner-2.4\bin 添加到Path

在项目的根目录下添加文件sonar-project.properties

文件内容以下
sonar.projectKey=HotelMonitor
sonar.projectName=HotelMonitor
sonar.projectVersion=1.2
sonar.sources=src
sonar.sourceEncoding=UTF-8
sonar.language=java

在“开始”》“运行”中输入cmd切换的项目更目录 输入“sonar-runner”

看到以下日志,说明代码校验成功

登录http://localhost:9000/ 查看代码扫描结果

点击项目名称查看校验详情

6 Jenkins与sonar集成

6.1 Jenkins配置

点击点击“系统管理”》“系统设置”
配置sonar-runner有两种方式
第一种jenkins自动安装sonar-runner

第二种 使用现有安装

6.2 sonar配置


点击“保存”。
在项目中配置sonar代码分析
点击项目名称进入项目配置,选择“新增构建步骤”,选择“invoke Standalone Sonar Analysis”

做以下配置

点击“保存”

将项目根目录下的sonar-runner.properties提交svn,
执行“当即构建”
看到jenkins的控制台输出以下日志,校验成功


访问http://localhost:9000/dashboard/index/HotelMonitor
查看校验结果。

若果本地安装了sonar-runner,能够运行本地bat脚本的方式运行sonar-runner,配置以下,前提是必须将sonar-runner加入的环境变量, 选择“增长构建步骤”

输入bat脚本

修改sonar配置,作以下配置,打开sonar配置页面,配置“disable the SCM Sensor”为“是”

不然会报以下错误

7 Maven安装与maven私服的搭建

7.1 Maven安装

在maven官网下载maven
http://maven.apache.org/download.cgi
下载apache-maven-3.1.1-bin.zip并解压

配置环境变量

打开cmd窗口数据 mvn –v 查看maven版本,打印以下表示安装成功。

7.2 Maven私服nexus安装

下载nexus http://www.sonatype.org/nexus/go/,我下载的是linux版本。

nexus-latest-bundle.tar.gz
将安装包复制到须要安装的机器,我安装在/opt/soft/nexus
tar –zxvf nexus-latest-bundle.tar.gz
解压后会出现两个目录

cd nexus-2.7.7-01/bin
./nexus
输出以下:

列出了nexus的各类命令
./nexus start 启动服务
而后在本机访问http://localhost:8081/nexus,默认用户名密码:admin,admin123

若是是远程机访问还须要开通8081端口,操做以下:
/sbin/iptables -I INPUT -p tcp --dport 8081 -j ACCEPT #开启8081端口
/etc/rc.d/init.d/iptables save #保存配置
/etc/rc.d/init.d/iptables restart #重启服务
查看端口是否已经开放
/etc/init.d/iptables status

7.3 Nexus配置

hosted 类型的仓库,内部项目的发布仓库
releases 内部的模块中release模块的发布仓库
snapshots 发布内部的SNAPSHOT模块的仓库
3rd party 第三方依赖的仓库,这个数据一般是由内部人员自行下载以后发布上去
proxy 类型的仓库,从远程中央仓库中寻找数据的仓库
group 类型的仓库,组仓库用来方便咱们开发人员进行设置的仓库
点击“Repositories”》“central”》“configuration”

设置“Download Remote Indexes”为true
设置“Remote Storage Location”为:http://repo1.maven.org/maven2/

配置完成保存以后,在“central”中右键“repair index”,下载索引

在“browse Index”查看下载的索引

注意:若是没有下载到索引多是由于nexus安装的目录下sonatype-work目录没有修改权限,给文件夹赋权便可;
Chmod 777 –R sonatype-work

修改maven安装目录conf下的settings.xml文件添加以下代码
1.在profiles节点下添加



nexus
nexus
http://10.10.152.174:8081/nexus/content/groups/public/

true


true




在settings节点下添加

central

</activeProfiles>

在services节点下添加

releases
admin
admin123


snapshots
admin
admin123

在项目的pom文件中添加

<distributionManagement>     
     <repository>         
         <id>releases</id>         
         <name>Nexus Release Repository</name>         
         <url>http://10.10.152.174:8081/nexus/content/repositories/releases/</url>     
     </repository>     
     <snapshotRepository>         
         <id>snapshots</id>         
         <name>Nexus Snapshot Repository</name>         
         <url>http://10.10.152.174:8081/nexus/content/repositories/snapshots/</url>     
     </snapshotRepository> 
 </distributionManagement>

而后执行clean deploy

或者在eclipse中输入命令执行

查看私服部署的jar包

7.4 Nexus上传jar包

右键“3rd party”

在索引中查看上传的jar包

若是要引用该jar包只须要将描述中的xml添加到项目引用的opm文件中

7.5 Maven相关命令

help:system能够打印全部可用的环境变量和Java系统属性。
help:effective-pom用于查看当前生效的POM内容,指合并了全部父POM(包括Super POM)后的XML,因此可用于检测POM中某个配置是否生效
help:effective-settings可用于查看当前生效的settings.xml文件内容,因此可用于判断某个settings配置是否生效
mvn help:describe 你是否由于记不清某个插件有哪些goal而痛苦过,你是否由于想不起某个goal有哪些参数而苦恼,那就试试这个命令吧,它会告诉你一切的. 参数: 1. -Dplugin=pluginName 2. -Dgoal(或-Dmojo)=goalName:与-Dplugin一块儿使用,它会列出某个插件的goal信息,若是嫌不够详细,一样能够加 -Ddetail.(注:一个插件goal也被认为是一个 “Mojo”) 下面你们就运行mvn help:describe -Dplugin=help -Dmojo=describe感觉一下吧!
mvn archetype:generate 你是怎么建立你的maven项目的?是否是像这样:mvn archetype:create -DarchetypeArtifactId=maven-archetype-quickstart -DgroupId=com.ryanote -Dartifact=common,若是你还再用的话,那你就out了,现代人都用mvn archetype:generate了,它将建立项目这件枯燥的事更加人性化,你不再须要记那么多的archetypeArtifactId,你只需 输入archetype:generate,剩下的就是作”选择题”了.
mvn tomcat:run 用了maven后,你不再须要用eclipse里的tomcat来运行web项目(实际工做中常常会发现用它会出现不一样步更新的状况),只需在对应目录 (如/ryanote)里运行 mvn tomat:run命令,而后就可在浏览器里运行http://localhost:8080/ryanote查看了.若是你想要更多的定制,能够在 pom.xml文件里加下面配置: 01 02 03 04 org.codehaus.mojo 05 tomcat-maven-plugin 06 07 /web 08 9090 09 10 11 12 固然你也能够在命令里加参数来实现特定的功能,下面几个比较经常使用: 1. 跳过测试:-Dmaven.test.skip(=true) 2. 指定端口:-Dmaven.tomcat.port=9090 3. 忽略测试失败:-Dmaven.test.failure.ignore=true 固然,若是你的其它关联项目有过更新的话,必定要在项目根目录下运行mvn clean install来执行更新,再运行mvn tomcat:run使改动生效.
mvnDebug tomcat:run 这条命令主要用来远程测试,它会监听远程测试用的8000端口,在eclipse里打开远程测试后,它就会跑起来了,设断点,调试,一切都是这么简单.上面提到的那几个参数在这里一样适用.
mvn dependency:sources 故名思义,有了它,你就不用处处找源码了,运行一下,你项目里所依赖的jar包的源码就都有了

8 Jenkins,maven,sonar集成

8.1 集成

默认jenkins已经安装了maven插件

在jenkins“系统管理”》“系统设置”中添加jenkins配置,也可使用“自动安装”

新建一个maven项目,在“项目配置”中输入svn地址

添加sonar代码分析,在“增长构建后操做步骤”选择“sonar”

点击“保存”后进行项目构建,能够看到jenkins从私服上下载相关依赖jar包

访问http://localhost:9000/ 查看sonar生成的代码监测报告

selenium2+python自动化入门系列1-环境安装

原创2016-07-08YOYO 软件测试部落 软件测试部落

软件测试部落

微信号

功能介绍 Hordehome官方社区公众号,主要探索以"持续集成"基础的敏捷测试技术,以及质量改进和监控。若是您初入测试行业,咱们会给您提供学习方向;若是你是技术专家,欢迎分享您的宝贵经验,地址:www.hordehome.com

前言    有不少测试的小伙伴刚接触自动化时,对代码有恐惧感,一据说自动化要写脚本,就取消了学自动化的念头。但是每次面试都要被问到会不会自动化,面试受挫后,因而又蠢蠢欲动想学自动化了。

 

    大部分人学自动化以前喜欢问:“大家用什么工具自动化?”

自动化工具不少,可是原理基本上都同样,在选择作自动化以前,本身要选一门脚本语言。如今通常选java或者Python。若是你没有java基础,也没代码基础,那就跟小编一块儿用Python吧。

1、Python安装

    1.小编的电脑操做系统:win7 64位系统

    2.下载Python安装包,选择2.7版本和3.6版本均可以

(下面的教程,两个版本会一块儿讲,因此不用担忧版本问题)

官网下载地址:https://www.python.org/

    有些小伙伴可能跟我同样,英语是硬伤,找不到安装包。不会下载的,能够加如下QQ交流群:232607095。群文件资料都有哦~

    3.Python安装,双击傻瓜式安装(别安装在c盘哦)

    4.小编的安装目录在d盘:D:\python

http://mmbiz.qpic.cn/mmbiz/V78YwRvp9dOaxdXaOX9FwgHiarG7falXqtUsiaWLq4d0HhJUtqKLasiacpORkJk3jHEiaNCjd3JcaiaWWXUsywDmLnw/640?wx_fmt=png&wxfrom=5&wx_lazy=1

2、环境变量

    1.安装完成后,看下这个目录D:\python\Scripts,有没pip.exeeasy_install.exe这两个文件(通常都有)

   2.D:\pythonD:\python\Scripts路径,添加到环境变量path

http://mmbiz.qpic.cn/mmbiz/V78YwRvp9dOaxdXaOX9FwgHiarG7falXqmbEW77Uhj18gLH8iantjfWTLwia2ymodcfu4169Kos3l3oibSlaxV4Amw/640?wx_fmt=png&wxfrom=5&wx_lazy=1

3、安装selenium

    1.打开cmd窗口输入:pip(若是有内容显示,说明正常)

    2.cmd输入指令安装seleniumpip install -U selenium

(注意:必定要看到进度100%完成,若是中途失败了,从新输入指令安装,直到看到100%完成为止)

 

4、验证selenium

    如何才能知道selenium正确安装好了呢?

    1.确保电脑上安装了Firefox浏览器

    2.cmd窗口输入以下指令

    >python

    >from selenium import webdriver

    >webdriver.Firefox()

    3.若是能启动浏览器,说明环境安装OK

http://mmbiz.qpic.cn/mmbiz/V78YwRvp9dOaxdXaOX9FwgHiarG7falXqARTEzbMHc6VQOu7a4SnOuGQ7qhj5mDGRos3giafYc021vKFcFZic57hg/640?wx_fmt=png&wxfrom=5&wx_lazy=1

5、浏览器

    1.若是你打算用Firefox浏览器,那么千万别安装47版本(不兼容)

要是找不到低的版本,能够在QQ群:232607095下载。

    2.若是你打算用IeChrome浏览器,须要先下载浏览器驱动,将驱动文件放到python根目录。

http://mmbiz.qpic.cn/mmbiz/V78YwRvp9dOaxdXaOX9FwgHiarG7falXqOuBjXZSK3SicZkWBnAZEOC3mS04PFufztsM5QXFRgIaAc9yYCUU3FMA/640?wx_fmt=png&wxfrom=5&wx_lazy=1

python写脚本的工具,小编选择的是pycharm,一样在QQ群:232607095能够下载到。若是不会破解,小编下节课教你们完美破解pycharm,下节课主题讲这个工具的一些小技巧。

相关文章
相关标签/搜索