引入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. [hystar整理]Entity Framework 教程

    参考页面: http://www.yuanjiaocheng.net/entity/entity-relations.html http://www.yuanjiaocheng.net/entity/ ...

  2. elike.python.function()

    将python用于基本的科学计算,能完全替代matlab.就最近写的一个物理模型程序来看,用python建立的物理模型的可控性,代码的层次性都优于matlab,只不过python没有matlab那样的 ...

  3. C++ STD accumulate函数

    1. 介绍 用来计算特定范围内(包括连续的部分和初始值)所有元素的和,除此之外,还可以用指定的二进制操作来计算特定范围内的元素结果.其头文件在numeric中. 用次函数可以求和,构造前n项和的向量, ...

  4. 一键强制修改任意Mysql数据库的密码,修改任意环境Mysql数据库。

    本文采用我软件里面的内置改密功能,可以一键强制修改Mysql数据库的密码, 在修改过程中,会强制干掉Mysql主程序,修改完成后重新启动Mysql就可以了. 首先讲解如何一键强制修改PHPWAMP自身 ...

  5. Intellij Idea + Maven + Git + Struts2 HelloWorld

    1.在intellij Idea上新建Maven项目,输入相应的groupId,artifactId,项目名称: 2.在项目的pom文件中,引入struts2的核心依赖struts2-core: &l ...

  6. asp.net网站发布到服务器GET的技能

    刚刚知道映射网络驱动器的作用(虽然才知道,但是我高兴) 把服务器上的硬盘或者其他电脑共享给你的盘映射到本地,就和操作本地硬盘一样. 双击计算机->映射网络驱动器->上面选择驱动器号 下面文 ...

  7. samba 开启

    1.查询samba服务安装好没 2.安装samba服务 3.增加以下几个条目 4.useradd smbuser 5.在重启中注意的问题 5.详细请查看 http://jingyan.baidu.co ...

  8. 读书笔记之《The Art of Readable Code》

    <The Art of Readable Code>- Dustin Boswell, Trevor Foucher    O'Reilly出版 整体认知:这本书写得很好,每一章后面的总结 ...

  9. matlab中选择图片路径

    %读取训练图片数据文件 [FileName,PathName] = uigetfile('*.*','选择测试图片数据文件t10k-images.idx3-ubyte'); %暴露图片路径 saved ...

  10. myeclipse的一些优化设置

    注:本文内容复制于little_paper的博客,具体链接为http://little-paper.iteye.com/blog/1670745,感谢little_paper的分享,为便于能随时学习, ...