Jenkins和robot framework集成(附带邮件,groovy脚本优化)

1 添加robot插件

2 添加邮件插件


3 在jenkins中添加需要远程访问的slave节点(子节点)

在jenkins系统管理-管理节点下面点击新建节点按钮,填写相关信息

填写节点名称,选择Dumb Slave 选项,点击“ok”按钮,创建一个slave节点。

配置slave节点的相关属性信息。


4 配置节点



a)“远程工作目录”部分需要填写要远程控制的服务器的共享文件夹的地址信息。

如:\\192.168.0.90\testRobot。该地址信息用于存储jenkins远程控制时需要临时放置的相关文件。

b)“标签”部分内容,定义一个标签名称,用于远程调用时标示的选择。

c)“启动方法”部分选择“Launch slave agents via Java Web Start”选项即可。

d)“Environment variables”环境变量部分需要手动添加需要远程控制的服务器上的环境变量参数。

该部分内容用于jenkins远程访问时可以获得远程控制的服务器上面的相关环境变量。 和服务器的一致

如:

设置path为c:\python27;c:\Python27\Scripts;C:\Program Files\Google\Chrome\Application即可。

点击“save”按钮保存相关设置信息。查看管理节点页面,出现新添加的slave节点信息。节点状态展现为未连接


5 在需要控制的远程服务器上安装jenkins远程控制客户端代理程序,并运行,使jenkins和远程服务器进行连接。

在需要远程控制的服务器上运行jenkins框架访问页面,在jenkins系统管理-节点管理页面中点击新添加的slave节点,展现如下页面

按照页面提示信息,在cmd中运行:“javawshttp://192.168.0.135:8080/computer/slave2/slave-agent.jnlp”执行语句,安装slave客户端代理程序。

如显示应用程序被安全设置阻止。需要在java运行的安全级别中添加例外的网站地址信息

在“所有程序-java”中选择“configure java”选项,打开java控制面板,选择“安全”tab页,在上面添加例外站点列表。点击“确定”按钮保存java设置。


重新在cmd中运行:“javawshttp://192.168.0.135:8080/computer/slave2/slave-agent.jnlp”执行语句,弹出slave客户端代理程序页面,即可连接jenkins和slave服务器

也可以在弹出的slave客户端代理程序页面进行安装代理服务程序。


安装代理服务程序成功后,在cmd中运行:“java -jar slave.jar -jnlpUrlhttp://192.168.0.135:8080/computer/slave2/slave-agent.jnlp”语句,启动slave客户端代理程序,连接jenkins和slave服务器。

在jenkins中查看节点连接情况,节点连接状态显示正常


6  新建一个任务,进行远程控制访问robotframework程序,自动运行测试用例。

a)在jenkins主页面中点击“新建”按钮,新建一个任务。



填写一个任务名称,选择“构建一个自由风格的软件项目”的类型,点击“ok”按钮,新建一个任务。



b)配置任务的相关属性信息。描述最简单的远程控制配置,不带源码编译等信息。



C 构建内容(需要执行的robot任务)

需要多个任务执行时,增进步骤就可,jenkins是串行执行的




D 添加robot报告 更多的在高级中填写


点击“高级”按钮,展现详细log日志配置信息。配置读取log的输出路径,用于读取robotframework运行完成后的log日志信息。

配置需要读取的robotframework自动化测试用例执行后生成的文件夹路径地址。如:C:\WINDOWS\ 。

配置需要读取的相关log日志文件名称。如:output.xml 、 report.html 、log.html 。

设置80%通过显示为黄色,100%通过为蓝色。

e)点击“保存”按钮,创建任务成功。

7 配置自定义邮件:

装好邮件插件后 进入 系统管理→系统设置


A 设置Jenkins地址和管理员邮箱(不设置管理员邮箱无法发送邮件)



B 配置系统管理员的邮件属性

每个smtp server去服务提供方的帮助里都能查到,这里是腾讯企业邮箱的服务器地址



C点击高级,配置其他选项

 配置系统管理员的邮件属性



username:和前面系统管理员一致

password:使用授权码(后面会详述授权码)

Default Recipients:和前面系统管理员一致

D 配置“邮件通知”



和前面配置保持一致,点击高级进入配置



和前面完全一致

配置完后 勾上通过发送测试邮件测试配置



这里测试的是--第4步的配置,这测试通过 只能证明第4步配置是正确的,  事实上有经验的同事应该能看出 第三步配置的是jenkins自带的默认邮件服务,而第4不配置的是插件的邮件服务,但是插件服务是依赖于jenkins本身自带的邮件服务的

所以这几个选项都必须全部配对才能起效


最后保存系统设置

8 任务构建后的配置

选到我们刚建立的相关任务,点击配置


拉到构建后操作



选到高级选项


触发选择always(JENKINS本身自带的默认是只有失败才发)选择高级,配置具体内容


添加附件


将构建日志压缩作为附件也添加到邮件当中发送,需要注意的是,每一次构建都会产生一个报告文档,仓库里会包含有之前构建的所有的报告文档,所以需要打包的是当前这次产生的报告文档,不是之前的构建产生的文档



保存

9 添加 报告为邮件附件


主要配置上,点选高级


自定义空间到日志所在的文件夹(默认情况下 workspaces是在SLAVE下的节点配置的robot文件下建立对应的工程文件夹)



默认的workspace

构建后操作里


点选高级



因为前面已经把这个slave的workspace 重定位到日志所在的文件夹了,  所以直接写最终目标就行不用写路径了

10 优化邮件输出(使用groovy script)


安装如图插件:



前2个是提供groovy语言的JenKins内置插件,后2个一个是邮件支持,一个是邮件模板测试插件(模板编写完毕,上传到指定空间后,可不执行直接查看模板效果)

A 全局配置:




Dafault Content改成对应的脚本文件,脚本路径是在全局的工作目录下



在$Jenkins_Home/email-templates目录(如果没有email-templates请自行创建)下创建一个对应的脚本。脚本官方模板参考:

https://github.com/jenkinsci/email-ext-plugin/blob/master/src/main/resources/hudson/plugins/emailext/templates/groovy-html.template

B 节点内配置:

在具体的节点项目中做相应配置:


先检查下远端节点的主目录位置:



注意: 图示的这个节点是在SLAVE节点的空间中

 在构建后的邮件中添加对应语句:




脚本放入对应的主空间中。

节点执行脚本比全局需要多个步骤,需要批准脚本执行:



节点执行后第一次会报错


这时需要去In-process Script Approval 去允许执行


插件功能直接查看效果




注意红框处填写对应的主空间,如果配置了全局就填写jenkins_home位置,这里是slave节点 所以填节点文件位置


问题集锦:

1 Jenkins 调用robot中包含subprocess.popen 时报 windowserror: [error 2]


node 的环境变量没有设置正确,JENKINS的slave找不到CMD位置


不能是相对路径或者被控机的自带变量,必须填绝对路径


集成后大多数报win error的问题,基本都是环境变量没配置正确导致

2 fireFOX 无法浏览日志报告 

到 about:config 设置

security.csp.enable = false

其他问题导致的报告打不开

 

a. 如果你是用命令行开启的

 

关闭Jenkins,修改开启命令如下,重新开启

 

java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar E:\Jenkins\jenkins.war 

b. 如果你是用msi安装的

 

找到jenkins.xml 文件,修改如下

 

-Xrs -Xmx256m -Dhudson.model.DirectoryBrowserSupport.CSP= -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080

C. 如果你是用tomcat 启动的

有个临时的解决方法

c.1 打开jenkins 首页

c.2 进入系统管理

c.3 进入脚本命令行

在输入框输入如下代码,并执行

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")

注:方法c 都可以使用,但是重启后就失效了,需要重新执行

d 临时解决方案

jenkins系统管理—>运行命令行,在文本里输入

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容