引入RF是为了能够快速的开展自动化验收测试,Jenkins而一种持续集成工具,用于监控持续重复的工作,持续的软件版本发布/测试项目,而通过RF+Jenkins可以有利的对RF构建的接口项目进行持续集成测试。Jenkins另一个强大之处就是它的分布式构建(在Jenkins的配置中叫做节点),分布式构建能够让同一套代码在不同的环境(如:Windows和Linux系统)中编译、测试等。而且Jenkins构建的代码和产物最后自动拷贝到主节点。

简单概括而言,结合RF+Jenkins开展持续集成基本步骤:

1、安装Jenkins

2、添加节点

3、安装RobotFramework插件

4、配置Job运行测试任务

本章节对于Jenkins如何搭建,RobotFramework插件如何安装,不作描述,内部组员可利用现有已搭建好环境,配置所需Job运行测试即可。

1.1  Jenkins普通任务配置

一、添加节点

启动Jenkins服务的这台机器在Jenkins里叫做master,而其他的连到master上的机器(物理机、虚拟机都可以)都是slave,也叫节点。

1、系统管理→管理节点→新建节点(左上角)

节点名称:建议使用字母、数字或字母和数字的组合。最好见名知意。不建议使用标点符号和中文(中文命名没有问题,但Job中无法引用)

Dumb Slave:新建一个节点

复制现有节点:从已存在的节点中复制一份配置(如果存在节点才会显示)

注:这是静态连接的方式,就是先设置好节点,由slave自己去连master作为这个节点。

2、输入Slave名字,点确定,进入下一步:

针对上图一些特殊配置项,进行一些说明:

# of executors:表示在slave上可以并行执行几个线程,即最大同时构建数量(根据机器的性能定,单颗四核cpu建议不要超过5)对于RF来说,建议设置为1。

远程工作目录:节点的根目录,即在slave上创建jenkins工作目录的路径,如设置为D:\JK(注意:如果目录不存在,会自动创建目录。你必须对该目录有读写权限,不然会报错:hudson.util.IOException2: Failed to copy xxxx)

标签:可以给slave加上一个或多个标签,通过标签选择slave,用来对多节点分组,标记之间用空格分隔.例如'slave1 slave2'将会把一个节点标记上slave1和slave2。

启动方法:启动slave的方法,推荐选第二个Launch slave agents via Java Web Start

注意:如果是用来执行RF自动化测试案例的slave,严禁选择windows service的方式,否则后果自负。

3、 点击保存,进入下一步

如上图所示,有两种方式可以启动节点(都是JNLP方式。JNLP连接需要端口,默认连接端口是随机的,端口更改 系统设置→Configure Global Security→JNLP节点代理的TCP端口)

两种方式启动如下:

1.Launch agent from browser on slave  下载文件slave-agent.jnlp文件,双击打开。

一般用在Windows系统上,需要javaws.exe(在Java的bin目录中可以找到)程序才能打开。如果提示错误,请卸载JDK后重新安装。成功启动如下图所示:

点击左上角的File选择Install as a service就可以添加为Windows的服务了(默认开机自动启动)。

2.Run from slave command line   java -jar  http://xxxx/slave-agent.jnlp  如果你配置了权限那么后面还有一串看不懂的随机Key

下载slave.jar到本地,然后进入存放slave.jar的目录,复制粘贴并运行 java -jar slave.jar -jnlpUrl http://xxxxx  即可启动。

注意:如果节点主机上不存在JDK,Jenkins会去自动下载,但Oracle对程序自动下载做了限制,会导致下载失败,然后一直循环这个问题。(所以运行节点的主机建议在运行前,将所需环境搭建完整)

二、配置运行Job任务

1、进入首页,点击新建任务

对于RF的Job来说,自由风格就可以了。多配置也可以,只不过多配置的略有不方便,看各自需要吧,比如你要把一套案例在多个不同配置的slave上执行,就可以用多配置的Job。

2、选择自由风格,点击OK,进入下一步:

可配置选项很多,这里就介绍几种常用的配置项:

A .Restrict where this project can be run: 前面的标签就在这里用上了。用来指定这个Job在哪个标签的slave上执行

B.源码管理:RF的案例源码管理,部门内部请选用GitLab

C.构建:我们要增加构建步骤-Execute Windows batch command,如下写个简单的命令,完整命令行参数大家自己在命令行输入pybot.bat --help来看

D.构建后操作:我们要增加构建后步骤-Publishes Robot Framework test results,第一个output默认可以为空,如果前面的pybot.bat指定了输出目录,那么这里也要对应进行设置,否则他找不到output.xml就没法解析结果了。

3、保存Job,点击立即构建,运行任务

可以点构建的进度条直接看到控制台输出,或者在点构建的名字在菜单里找控制台输出看结果,如下所示:

RF插件作用:主要用了解析RF运行后的output.xml文件,将解析的结果展示出来。

1.2  Jenkins定时任务配置

上述简述了如何配置一个普通的Jenkins Job任务,但此类型任务需人工的手动去执行构建操作,而Jenkins也可以配置定时任务,从而让我们配置好的JOB在我们指定的时间去自动执行,下述讲述如何配置Jenkins定时任务。

1、添加节点,配置Job等方法,步骤,如4.1章节所示。

2、在配置Job时,其中有一个构建触发器的选项,如图所示:

如上述,选择build periodly(即周期构建),如上图表示每天2:00 自动构建一次。

日程表格式:用 cron 格式,五个空格隔开的字符组成,分别表示分 时 天 月 年,*表示所有

例1:0 12,20 * * *表示的就是每天的12点和20点执行一次构建

例2:*/5 * * * * 表示每5分钟执行一次构建

例3:0 2 * * * 表示每天2点执行一次构建

3、通过增加build periodly选项,就可完成自动构建任务。

1.3  Jenkins邮件发送配置

在上一章节中,当我们配置了自动构建项目,为了可以及时知道构建结果,这里我们介绍如果当构建项目后,如何自动将构建后的结果以邮件的形式通知到指定人员。

这里介绍两种Jenkins邮件通知方法:

一、Jenkins内置邮件功能:

1、配置系统管理员邮件地址(即设置发送者的邮箱地址)

进入Jenkins首页-->系统管理-->系统配置页面,在Jenkins Location位置,配置系统管理员邮箱地址,如下图所示:

2、配置邮箱SMTP

通过“系统管理”-“系统设置”,进行系统设置界面,移动到设置页面的最下面,“邮件通知”部分,配置stmp服务器地址和用户默认邮件后缀,用户名,密码等,如图

注:在系统管理员那个地方设置的email地址要和email配置的相同。

3、测试地址正确性

可以勾选 “通过发送测试邮件配置”测试此配置能否连通。

4、对构建的Job配置邮件发送

在配置job任务时,添加构建后步骤“E-mail Notification”,如下图:

在Recipients中输入接收者的邮箱地址,这样每次build后都会发送邮件给这个接收者, 这种内置邮件通知功能,只能发给 固定的对象,且格式单一(txt)。

二、使用插件 “Email Extersion Plugin”进行扩展

1、成功安装了Jenkins Email Extension Plugin,在邮件通知的上面,按需配置:

上述常用字段解释如下:

Default Recipients:自定义默认电子邮件收件人列表。如果没有被项目配置覆盖,该插件会使用这个列表。您可以在项目配置使用$ DEFAULT_RECIPIENTS参数包括此默认列表,以及添加新的地址在项目级别。添加抄送:cc:电子邮件地址例如,CC:someone@somewhere.com

Emergency reroute:如果这个字段不为空,所有的电子邮件将被单独发送到该地址(或地址列表)。

Excluded Committers:防止邮件被邮件系统认为是垃圾邮件,邮件列表应该没有扩展的账户名(如:@domain.com),并且使用逗号分隔

Default Subject:自定义邮件通知的默认主题名称。该选项能在邮件的主题字段中替换一些参数,这样你就可以在构建中包含指定的输出信息。

Maximum Attachment Size:邮件最大附件大小

Default Content:自定义邮件通知的默认内容主体。该选项能在邮件的内容中替换一些参数,这样你就可以在构建中包含指定的输出信息。

2、插件用于job配置页面,添加构建后步骤“Editable Email Notification”

其它各常用字段属性,在此不再作过多解释,如想了解,请自行度娘。

3、默认情况下,是没有配置的触发器,所以默认情况下不会发送邮件。请点击”高级”按钮。该选项允许您各种类型的邮件触发器指定接收者。要增加更多的触发器,选择“Add a Trigger”旁边下拉列表中的类型,它会增加到控件上面的列表中。如下图:

4、至此, 邮件配置完成。

1.4  Jenkins代码检查配置

此章节主要介绍,利用jenkins配置定时检测git远程仓库是否有代码checkin,若有则触发进行构建并执行RF 命令,最终在jenkins中生成report,且email通知你构建结果, 从而实现了持续集成。

1、安装Git plugin ,进入“系统管理”→ “插件管理”, 切换到Available tab, 选择Gitplugin、GitLabPlugin、GitClientPlugin,如果你的git仓库是private的还需要安装SSHSlavesplugin , SSHCredentialsPlugin 。

2、配置Git安装路径,严格来讲应该也需配置JDK路径,但笔者调试时,未配置JDK,也可正常,故配置JDK暂略,方法一样,Git路径配置如下:

3、Git帐号配置(这步应该可以省略):

4、配置Job任务,源码管理选择git,填写“Repository URL ”,并加上相应的“Credentials ”,其中认证信息用私钥的话干脆直接把私钥内容填上去就行了,省的不知道目录查找规则还不知道出的啥问题,如下图所示:

注意:私有项目在认证时一定选择SSH Username with private key,公钥配置在git端的项目里的public keys里.私钥配置在jenkins里即可.直接输入私钥,要完整复制 ~/.ssh/id_isa里面的内容。如果是公有项目,在认证时,可以选择用户名密码认证的方式。

5、 构建触发器:可以通过Poll SCM来设置定时检查编译功能

Poll SCM:定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作。

比如*/5 * * * * 就是每隔5分钟检查一次,如果git仓库中有更新,则执行build操作。
如图所示:

注:Build periodically也是周期进行项目构建(但它不care源码是否发生变化)

RF+Jenkins构建持续集成的更多相关文章

  1. Docker 结合Jenkins 构建持续集成环境

    Docker 结合Jenkins  构建持续集成环境 Jenkins : 一个开源的持续集成工具, 提供软件版本发布.自动测试等一系列流程及丰富的插件 Maven: 一个自动化构建工具, 通过一段描述 ...

  2. 使用jenkins构建持续集成平台

    jenkins +   Maven + svn/git + tomcat 的持续集成平台 项目管理流程: 需求分析----原型设计----开发代码----提交测试-----内部测试-----确认上线( ...

  3. Jenkins构建持续集成

    Jenkins 是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变得可能.现在软件开发追求的是效率以及质量,Jenkins使得自动化成为可能! 亮点 采用shell自定义脚本,控制 ...

  4. 使用Jenkins构建持续集成环境

    简介 Jenkins是一个开源的持续集成工具,提供了数百种插件供用户选择,能够完成整套持续集成环境的构建. 它具有如下的特点: 持续集成和持续发布 作为可扩展的自动服务器,Jenkins可以作为简单的 ...

  5. 基于 Jenkins 构建持续集成任务

    1.1 Jenkins 配置使用心得 我是在windows10上安装的,安装过程很简单,从官网上下载下来msi安装包,双击执行就好了.安装程序完成后会自动打开http://localhost:8080 ...

  6. Docker结合Jenkins构建持续集成环境

    1.环境说明: jenkins+svn:192.168.71.142 测试环境:192.168.71.145 生产环境:192.168.71.148 操作系统:centos7. Maven3. Tom ...

  7. 使用Docker构建持续集成与自动部署的Docker集群

    为什么使用Docker " 从我个人使用的角度讲的话  部署来的更方便 只要构建过一次环境 推送到镜像仓库 迁移起来也是分分钟的事情 虚拟化让集群的管理和控制部署都更方便 hub.docke ...

  8. docker+jenkins实现持续集成

    持续集成的概念我就不多说了,网上一大堆,今日主要讲讲怎么通过docker 和jenkins实现项目的持续集成.看着简单,网上完整教程很少,本人摸索很久才搞定!!! 一.首先安装docker.安装过程可 ...

  9. 【iOS】Jenkins Gitlab持续集成打包平台搭建

    Jenkins Gitlab持续集成打包平台搭建 SkySeraph July. 18th 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点: ...

随机推荐

  1. 用Canvas,画中国国旗(Canvas基本知识点)

    .getContext("2d")=======>获取绘图接口 //2d .beginPath()========>创建绘图路径开始点 .moveTo(x,y)==== ...

  2. 使用spring-data-mongodb操作mongodb

    mongodb.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="h ...

  3. 关于 CentOS 自启动(服务、脚本)

    /etc/init.d /etc/rc.local 其实是软连接,所以,实际上看 /etc/rc.d/ 这个文件夹就好了 rc.local 是自启动脚本 正常情况下,用户自定义的服务在 init.d ...

  4. 【01背包】HDU 1171 Big Event in HDU

    Problem Description Nowadays, we all know that Computer College is the biggest department in HDU. Bu ...

  5. mac下virtualbox配置全网通

    mac下virtualbox实现主机和虚拟机.虚拟机和外网互访的方案 全局添加Host-Only网络 Adapter IPv4 Address:192.168.56.1 IPv4 Network Ma ...

  6. homebrew for mac

    注意 如果bash_profile 文件路径写错了,而导致很多命令不能使用 可以在终端 /usr/bin/vim ~/.bash_profile    打开编辑  esc退出  按冒号(:)再按wq ...

  7. Mp3tag(MP3文件信息修改器) V2.79a 多语绿色版

    软件名称: Mp3tag(MP3文件信息修改器) 软件语言: 多国语言 授权方式: 免费软件 运行环境: Win 32位/64位 软件大小: 3.0MB 图片预览: 软件简介: Mp3Tag 是一款m ...

  8. C语言 · 分解质因数

    问题描述 求出区间[a,b]中所有整数的质因数分解. 输入格式 输入两个整数a,b. 输出格式 每行输出一个数的分解,形如k=a1*a2*a3...(a1<=a2<=a3...,k也是从小 ...

  9. PAT乙级1001. 害死人不偿命的(3n+1)猜想 (15)

    卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半.这样一直反复砍下去,最后一定在某一步得到n=1.卡拉兹在1950年的世界数 ...

  10. 【3】JavaScript编程全解笔记(三)

    减少重复劳动,抓住核心. 第 4 部分 HTML5 1. HTML 技术分类 与 API 2. ApplicationCache 缓存 第 15 章 与桌面应用的协作 第 17 章 WebSocket ...