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请自行创建)下创建一个对应的脚本。脚本官方模板参考:
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","")