Jenkins+RobotFramework 持续集成测试
一、 Jenkins 搭建
下载 Jenkins,下载后直接运行 war 包,或者直接用 tomcat 运行吧。
二、 安装 Jenkins 的 robot framework 插件
在系统设置-管理插件中搜索插件 RobotFrameWork-Plugin,下载安装
或者手动下载 hpi 文件,在高级这个页面里的上传插件这个部分手动上传:
RF 的插件下载路径 http://mirrors.jenkins-ci.org/plugins/robot/
注意:Opening Robot Framework log failed 问题解决
临时解决方案
jenkins 系统管理—>运行命令行,在文本里输入
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
点击运行就可以解决,但是 jenkins 重启的话这个就需要再次输入
2、 彻底解决方案
之前的启动方式:java -jar jenkins.war,现在需要加上一些参数
windows 系统:
java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar jenkins.war
mac 和 linux:
nohup java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar jenkins.war &
用了 nohup,这样不用担心进程窗口关闭 Jenkins 也关闭的问题。
三、 添加 Slave 节点
我们启动 Jenkins 服务的这台机器在 Jenkins 里叫做 master,而其他的连到 master 上的
机器(物理机、虚拟机都可以)都是 slave,也叫节点。
在系统设置-管理节点中 点击新建节点(Permanent Agent)
需要注意的字段说明如下:
a、executors:表示在 slave 上可以并行执行几个线程,也可以点后面的问号看说明。对于
RF 来说,建议设置为 1。
b、远程工作目录:在 slave 上创建 jenkins 工作目录的路径
c、标签:可以给 slave 加上一个或多个标签,通过标签选择 slave
d、启动方法:启动 slave 的方法,推荐选第二个 Launch slave agents via Java Web Start
注意:如果是用来执行 RF 自动化测试案例的 slave,严禁选择 windows
service 的方式,否则后果自负。
四、 创建新 Job
1.新建一个自由风格的 Job
a、 丢弃旧的构建:设置对已经执行的旧的构建丢弃策略。
b、 Restrict where this project can be run: 前面的标签就在这里用上了。用来指定这个
Job 在哪个标签的 slave 上执行。
2.不涉及源码,故不配置;Job 的执行日程表为 H 0 * * 1-5,即每周一至周五零点触发
任务
Build periodically 配置说明如下:
注意:“Poll SCM”和“Build periodically”的区别:
Poll SCM:定时检查源码变更(根据 SCM 软件的版本号),如果有更新就 checkout 最新
code 下来,然后执行构建动作。
Build periodically:周期进行项目构建(它不 care 源码是否发生变化)。
3.执行用例前先从 gitlub 上更新自动化用例集,再执行用例
注意:因不关心更新自动化用例任务是否执行成功,故可编写成“git
pull origin || exit 1”
4.执行用例后分析执行结果并发送邮件给指定的用户
a、 Directory of Robot output:robot 执行后 Output.xml 报告路径。
b、 Thresholds for build result::阀值设置,如 80%和 100%,这里应该是测试用例执行
成功率和通过率的设置
5. Editable Email Notification 设置指定的邮件内容
邮件模板可以分两种模式:全局设置邮件模板、项目特殊设置邮件模板
a.全局设置邮件模板:
全局设置—邮件通知
注意:字符集最好设置为 zh_CN.UTF-8,防止邮件乱码
SMTP 服务器要配置正确,且勾选使用 SMTP 认证
全局设置- Extended E-mail Notification
注意:字符集最好设置为 zh_CN.UTF-8,防止邮件乱码
SMTP 服务器要配置正确,且勾选使用 SMTP 认证
该处配置全局邮箱模板内容,Default Content Type、Default Subject、Default
Content 三处必须配置
全局设置-邮件触发机制(一般选择 Failure – Any 或者 Always)
项目调用
注意:若项目中未设置指定邮箱地址,则会调用全局变量中设置的邮箱地址
b. 项目特殊设置邮件模板
项目调用
注意:若项目中未设置 Default Content Type、Default Subject、Default Content 等配
置项则是有全局变量中设置值;若项目中已设置则已项目中设置的值为准。
Attach Build Log 可以选择是否将构建日志作为附件添加到邮件中
附录:邮件模板脚本