如何搭建web测试环境Gerrit+Jenkins测试环境

jenkins中gerrit触发器设置
直接看图吧
在jenkins 中你的job设置中选择gerrit event
trigger on 我这里选择的是code review +2时触发构建
监控了向master的提交(&&&&&
git push origin
HEAD:refs/for/master )
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。17354人阅读
软件测试(3)
为什么用Gerrit + Jenkins
是开源的Code Review工具,被开源社区广泛使用。是流行的持续集成工具,支持自定义扩展,目前有600多种plugin扩展,而且支持分布式工作。
谁需要阅读本文
为项目搭建Jenkins测试环境的测试人员。
本文的目标
本问介绍如何将两者结合起来完成以下流程:
&&&&&& 1. 开发人员提交一个Code Review Request到Gerrit
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|
&&&&&& 2.自动触发Jenkins去clone一份code review代码的copy,build,run unit test,...
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& |
&&&&&& 3.将结果发回Gerrit:验证Code review代码的正确性结果,+1或者-1,附有相应的执行结果链接
这里侧重在如何配置Jenkins,略去关于Gerrit的安装和配置。
Jenkins安装和配置
1. 从下载Jenkins最新的war包,介绍了如何启动Jenkins,建议先创建一个单独的目录,存放Jenkins的配置信息,例如在Linux的用户目录下创建JenkinsHome,然后设置环境变量&export
JENKINS_HOME=$HOME/JenkinsHome&。默认的JenkinsHome是“$HOME/.jenkins”
2. 启动Jenkins:java -jar jenkins.war,默认端口是8080。
3. 安装Gerrit Plugin和Git Plugin:
&&& 访问Jenkins主页:,选择Manage Jenkins--&Manage Plugins,如果你的环境访问Internet需要代理,请先设置proxy:
从“Available”tab中选择Gerrit Plugin和Git Plugin:
点击&Install without restart&完成安装。
4. 设置SMTP服务器
通过Email来告知Jenkins每个Job执行的结果是广泛使用的通知机制,所以有必要设置好SMTP服务器。可以在Manage Jenkins--&Configure System中设置:
5. 设置用户和权限
只有注册用户才能创建job,而匿名用户可以查看执行结果的报告信息。而且如果不打开认证机制,在Build trigger中不会出现&Trigger builds remotely (e.g., from scripts)&,这个trigger机制可以和git repository中的hook脚本配合。
进入Manage Jenkins--&Configure Global Security,在Access Control的Security Realm中,选择&Jenkins's own user database&,选中&Allow users to sign up&。
在Authorization中,匿名用户只有读权限。加入一个新用户,比如,&admin&,拥有所有权限。然后在Jenkins主页上选择sign up,在&Username:&中填入刚刚加入的用户,比如&admin&,完成其余输入。然后login。
6. 配置Gerrit Trigger
如下图所示,填入相关Gerrit服务器的信息,以及访问该服务器的合法用户信息。必须保证Jenkins服务器上保存了SSH keyfile和password
7. 创建一个job
7.1 当有开发人员提交一个Code Review Request的时候,Gerrit触发Jenkins去下载这个patch,并build。
7.2 配置Source Code Management,选择Git,展开两个&Advance&:
在strategy中选择Gerrit Trigger:
7.3 配置Gerrit Trigger
选择两个Trigger on的事件:Patchset Created和Draft Published,填上Gerrit服务器上的项目名和要检测的branch正则表达式。
7.4 Build脚本
该脚本将会选择这个Job所在的目录为工作目录:$JENKINS_HOME/workspace/${JOB}。这里用hadoop的build命令作为例子,build_result.txt里面保存了编译成果或者失败的提示信息。
7.5 提取测试结果,发邮件通知
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:81357次
积分:1126
积分:1126
排名:千里之外
原创:37篇
(1)(1)(1)(1)(2)(1)(1)(1)(1)(2)(2)(2)(1)(1)(1)(1)(2)(2)(4)(2)(1)(2)(2)(2)(2)(1)(2)(1)(1)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'已经把这个错误信息Email给管理员了,我们会尽早解决这个问题
如果你持续遇到这个错误,请到bug4、Gerrit+Jenkins搭建CI系统
时间: 04:57:43
&&&& 阅读:397
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&一,CI系统流程开发人员将本地Git仓库中的代码更新后,push到Gerrit系统上对应的项目仓库中;该动作会触发Gerrit系统发送邮件通知给Owner,Owner此时需要登录Gerrit Web页面,进行Code Review(代码审核)。如果审核通过,则Owner进行Submit提交动作。此时开发人员push的代码才会Merge(合并)到Gerrit服务器上的对应项目仓库中。如果审核不通过,则开发人员需要修改代码后再次push,直到审核通过为止。而Jenkins被Gerrit系统上某一事件触发(可以为Submit,也可以是push,在Jenkins系统上可以自行设定),就会构建该项目,包括编译、打包、上传到指定的服务上等。以上就是CI系统工作流程,其中还可以在Jenkins上加入代码单元测试等。只有当测试通过,才会构建项目并发布到服务器上。具体如何做单元测试,还在研究中。二、CI系统环境Git+Gerrit+Jenkins(安装Gerrit Trigger插件)Gerrit服务器:172.16.206.133Jenkins服务器:172.16.206.129这两台服务器上都必须安装Git,他们工作都依赖于Git环境Gerrit和Jenkins的前面的文档里面有,这里不再演示。需要注意的是:1、安装Gerrit时,在交互安装过程中,系统会问你是否安装Label Verified&,默认是不安装的,如果要搭建CI,这里需要选择安装。如果系统中没有安装这个东西,后期可以再装上,但是网上的几个方法试下来都失败了,所以我只能重新执行Gerrit安装命令:java -jar /path/to/gerrit.war &/path/to/gerrit_dir重新安装了一遍,重装前,先停掉gerrit服务,交互安装过程中,很多步骤使用老的配置,唯独Label Verified&&选择y,表示安装。2、Jenkins安装Gerrit Trigger插件Jenkins官网有介绍这个插件的用法:https://wiki.jenkins-ci.org/display/JENKINS/Gerrit+Trigger#GerritTrigger-Gerritaccessrights三、Gerrit上的配置1、在Gerrit服务器上为Jenkins服务器创建一个账号,如jenkins。用该账号登录Gerrit Web,将该账号加入系统预设的Non-Interactive Users组。该组默认就已有监听Stream Events权限,Steam Events的原理是:Gerrit收到代码提交后,会以event的形式发给Jenkins,从而触发Jenkins自动构建。2、为该账号设置SSH Key,即将Jenkins服务器的root账户下的公钥传到Gerrit系统为Jenkins服务器创建的jenkins账号下的SSH Public Keys中,如果不知道如何设置,请参考前面的Gerrit用户配置文档。3、设置Non-Interactive Users组的权限,这个权限在All-Projects上设置注意,对于Label Verified权限,很多文章里面只说给Non-Interactive Users组权限,但是测试下来,如果不给Administrators和Project Owners组Verified权限的话,这两个组就没有Submit权限了。因为只有先Verified,才会有Submit。具体这个Verified权限是干嘛的我还没有研究。应该可以不需要这个权限,有些文章里面说是双重保障。四、Jenkins上的配置1、安装Gerrit Trigger插件系统管理==&管理插件==&可选插件,搜索Gerrit Trigger,安装后重启Jenkins2、配置Gerrit Trigger系统管理==&Gerrit Trigger==&Add New Server测试成功就会显示Success,注意hostname这里我填的是Gerrit服务器IP,可以填主机名,但是必须能解析才行。到此为止,配置基本完成了。五、创建一个Project,演示如何搭建CI环境。1、Gerrit上创建Project,名为CITEST。Administrators组内成员才能创建项目。2、登录Jenkins,创建构建一个自由风格的项目源码管理这里选择Git,Repository URL就是Gerrit Web上的为匿名用户提供的地址,注意把地址中的git clone命令去掉,Jenkins服务器自身安装了git,集成了git环境。构建触发器选择Gerrit eventChoose a server:视情况选择Any Server或具体特定server。我这里选择前面配置的Gerrit ServerTrigger on:可以不配置,不配的话保存job后会默认自动选中事件 Patchset Created(最关键的就是这个事件,是提交代码(push而不是Submit)后就触发的事件) 和 Draft Published。我选择的是Change Merged,表示当代码审核通过后,Owner点击Submit,Merge后才出发构建。Gerrit Project:需填完整 Pattern 和 Branches 内容才有效,例如Type选Plain,值填、Branches的Type选Plain、值填master;或Type选Path,Pattern填**,Branches的Type选Path,Pattern填**匹配任何project和branch,更详细的介绍可点相应问号查看。其他选项是什么意思还没来得及去研究。构建后用邮件通知,这个需要安装Email相关插件,如果不清楚如何配置,可以查看之前的Jenkins相关文档。到这里CI环境就搭建好了。六、跑一个项目1、git全局配置,配置用户名和邮箱,这里的用户名和邮箱必须要与Gerrit Web上的账户名邮箱一致,否则在执行git push命令时报错:remote: ERROR: &does not match your user account.[&~]$git&config&--global&user.name&"user1"
[&~]$git&config&--global&user.email&""
[&~]$&git&config&--list
user.name=user1
2、登录普通用户user1,将CITEST项目克隆到本地[&~]$&git&clone&ssh://:29418/CITEST&&&&scp&-p&-P&29418&:hooks/commit-msg&CITEST/.git/hooks/
Initialized&empty&Git&repository&in&/home/user1/CITEST/.git/
remote:&Counting&objects:&2,&done
remote:&Finding&sources:&100%&(2/2)
remote:&Total&2&(delta&0),&reused&0&(delta&0)
Receiving&objects:&100%&(2/2),&done.
commit-msg&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&100%&4662&&&&&4.6KB/s&&&00:00&&&&
CITEST3、进入到CITEST文件夹,新建一个citest.sh文件,内容随便填。[&CITEST]$&ls
citest.sh4、push该文件到Gerrit服务器[ CITEST]$ git add citest.sh&[ CITEST]$ git commit -m "创建了文件citest.sh"[master dfd5972] 创建了文件citest.sh&1 files changed, 1 insertions(+), 0 deletions(-)&create mode 100644 citest.sh[ CITEST]$ git push origin master:refs/for/masterCounting objects: 4, done.Writing objects: 100% (3/3), 311 bytes, done.Total 3 (delta 0), reused 0 (delta 0)remote: Processing changes: new: 1, refs: 1, done & &remote:&remote: New Changes:remote: & http://172.16.206.133:8081/18 创建了文件citest.shremote:&To ssh://:29418/CITEST&* [new branch] & & &master -& refs/for/master5、用Gerrit管理员账号登录Web UI进行审核注意Code-Review时,值的范围是-2到+2,-2是审核不通过,+2是审核通过,-1、0、1只能作为参考选项选项,如果要通过代码审核,必须至少有一个+2,而且不能有-2,两个+1不等于+2。管理员做代码审核后,立马就说到Gerrit管理员邮箱发出来的邮件。当管理员点击Submit后,立即出发了Jenkins构建。Jenkins上项目构建完成后,发送邮件通知给相关人员标签:&&&&&&
&&国之画&&&& &&&&chrome插件
版权所有 京ICP备号-2
迷上了代码!}

我要回帖

更多关于 如何搭建软件测试环境 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信