RF+Jenkins构建持续集成

简介: 引入RF是为了能够快速的开展自动化验收测试,Jenkins而一种持续集成工具,用于监控持续重复的工作,持续的软件版本发布/测试项目,而通过RF+Jenkins可以有利的对RF构建的接口项目进行持续集成测试。

引入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'将会把一个节点标记上slave1slave2

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

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

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

 

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

两种方式启动如下:

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

一般用在Windows系统上,需要javaws.exe(Javabin目录中可以找到)程序才能打开。如果提示错误,请卸载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  即可启动。

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

 

二、配置运行Job任务

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

 

对于RFJob来说,自由风格就可以了。多配置也可以,只不过多配置的略有不方便,看各自需要吧,比如你要把一套案例在多个不同配置的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 格式,五个空格隔开的字符组成,分别表示分 时 天 月 年,*表示所有

10 1220 * * *表示的就是每天的12点和20点执行一次构建

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

30 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, 选择GitpluginGitLabPluginGitClientPlugin,如果你的git仓库是private的还需要安装SSHSlavesplugin , SSHCredentialsPlugin 

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

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

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源码是否发生变化)

技术改变世界! --狂诗绝剑
目录
相关文章
|
2月前
|
云安全 人工智能 安全
Dify平台集成阿里云AI安全护栏,构建AI Runtime安全防线
阿里云 AI 安全护栏加入Dify平台,打造可信赖的 AI
2752 166
|
3月前
|
人工智能 Java API
Java与大模型集成实战:构建智能Java应用的新范式
随着大型语言模型(LLM)的API化,将其强大的自然语言处理能力集成到现有Java应用中已成为提升应用智能水平的关键路径。本文旨在为Java开发者提供一份实用的集成指南。我们将深入探讨如何使用Spring Boot 3框架,通过HTTP客户端与OpenAI GPT(或兼容API)进行高效、安全的交互。内容涵盖项目依赖配置、异步非阻塞的API调用、请求与响应的结构化处理、异常管理以及一些面向生产环境的最佳实践,并附带完整的代码示例,助您快速将AI能力融入Java生态。
575 12
|
4月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
875 1
|
4月前
|
供应链 监控 搜索推荐
35页PPT|零售行业自助数据分析方法论:指标体系构建平台集成、会员与商品精细化运营实践
在零售行业环境剧变的背景下,传统“人找货”模式正被“货找人”取代。消费者需求日益个性化,购买路径多元化,企业亟需构建统一的指标体系,借助BI平台实现数据驱动的精细化运营。本文从指标体系构建、平台集成到会员与商品运营实践,系统梳理零售经营分析的方法论,助力企业实现敏捷决策与业务闭环。
35页PPT|零售行业自助数据分析方法论:指标体系构建平台集成、会员与商品精细化运营实践
|
4月前
|
SQL 关系型数据库 Apache
从 Flink 到 Doris 的实时数据写入实践 —— 基于 Flink CDC 构建更实时高效的数据集成链路
本文将深入解析 Flink-Doris-Connector 三大典型场景中的设计与实现,并结合 Flink CDC 详细介绍了整库同步的解决方案,助力构建更加高效、稳定的实时数据处理体系。
1949 0
从 Flink 到 Doris 的实时数据写入实践 —— 基于 Flink CDC 构建更实时高效的数据集成链路
|
4月前
|
消息中间件 存储 数据采集
Apache InLong:构建10万亿级数据管道的全场景集成框架
Apache InLong(应龙)是一站式、全场景海量数据集成框架,支持数据接入、同步与订阅,具备自动、安全、可靠和高性能的数据传输能力。源自腾讯大数据团队,现为 Apache 顶级项目,广泛应用于广告、支付、社交等多个领域,助力企业构建高效数据分析与应用体系。
|
8月前
|
jenkins Java Linux
Jenkins环境的部署及任务构建
以上就是Jenkins环境的部署及任务构建的全部内容。希望可以帮助你轻松上手Jenkins,让你的CI/CD之旅更加顺畅!
533 68
|
7月前
|
jenkins 持续交付 开发工具
利用Dockerfile自主构建Jenkins镜像
希望这个过程能善用你的野马般想象,把自己置身于和计算机的卓尔不凡的对话中,让编程的过程充满趣味。
264 36
|
11月前
|
容灾 安全 关系型数据库
数据传输服务DTS:敏捷弹性构建企业数据容灾和集成
数据传输服务DTS提供全球覆盖、企业级跨境数据传输和智能化服务,助力企业敏捷构建数据容灾与集成。DTS支持35种数据源,实现全球化数据托管与安全传输,帮助企业快速出海并高效运营。瑶池数据库的全球容灾、多活及集成方案,结合DTS的Serverless和Insight功能,大幅提升数据传输效率与智能管理水平。特邀客户稿定分享了使用DTS加速全球业务布局的成功经验,展示DTS在数据分发、容灾多活等方面的优势。
322 0
|
6月前
|
Ubuntu jenkins 机器人
在Jenkins上配置触发Ubuntu环境的图形用户界面(GUI)构建任务。
以上,这趟融合了技术与艺术的Jenkins配置之旅就告一段落了。记住,技术应当像艺术一样有趣和生动,这样才能激发出最大的创新和效率。
178 2

热门文章

最新文章

推荐镜像

更多