(四)、使用Jenkins进行Robot Framework自动化持续工作

A.    目标:

利用jenkins可以定期执行自动化,使自动化持续执行,不断优化

 

B.    配置

1.   创建任务

(四)、使用Jenkins进行Robot Framework自动化持续工作

(四)、使用Jenkins进行Robot Framework自动化持续工作

2.   任务的配置

1)     General

(四)、使用Jenkins进行Robot Framework自动化持续工作

2)     源码管理

(四)、使用Jenkins进行Robot Framework自动化持续工作

3)     构建触发器

(四)、使用Jenkins进行Robot Framework自动化持续工作

注:表示每天凌晨1点执行

4)     构建环境

(四)、使用Jenkins进行Robot Framework自动化持续工作

5)     构建

如果在Windows系统中搭建jenkins的话,在构建中,选择“Execute Windows batch command”,输入pybot.bat  d:\test.txt (这只是举个例子,具体执行哪个目录下的哪些case,根据实际情况决定)

(四)、使用Jenkins进行Robot Framework自动化持续工作

如果不清楚pybot.bat的用法,可以用RIDE跑一个用例,看command信息,先直接拿过来调试用用

(四)、使用Jenkins进行Robot Framework自动化持续工作

注:

1、c:\users\root\appdata\local\temp\RIDEg6yof8.d\argfile.txt就是定义要执行自动化的用例。我们可以直接将argfile.txt放到jenkins稳定的目录下,例如:C:\Users\root\.jenkins\temp\argfile.txt

2、‘E:\SVN\项目\xxxx\自动化\已核对\测试项目’直接引用即可,因为这里就是自动化用例所在的路径

 

6)     构建后操作

Robot results:

构建后的操作,选择“PublishRobot Framework test results”

*Directory ofRobot output 填一个本地路径,要根据你的output文件放在哪里了,默认可以不填

*Thresholds forbuild result  阀值设置,如80%和100%,这里应该是测试用例执行成功率和通过率的设置

(四)、使用Jenkins进行Robot Framework自动化持续工作

 

注:如果不知道Directoryof Robot output填什么路径,可以通过控制台输出进行定位,如下:

(四)、使用Jenkins进行Robot Framework自动化持续工作  

(四)、使用Jenkins进行Robot Framework自动化持续工作

其实report.html和log.html的输出路径是在启动脚本控制的,如下:

(四)、使用Jenkins进行Robot Framework自动化持续工作

 

 

Email 信息:

点击“增加构建后操作步骤”,然后点击“Editable Email Notification”,进入邮件内容详细配置界面。

(四)、使用Jenkins进行Robot Framework自动化持续工作

点击页面上的Advanced settings设置什么时候触发发送邮件的功能:

把默认的trigger给删除掉,然后新增一个trigger,然后选择Always选项,如此便不管构建成功还是失败都会发送邮件。

(四)、使用Jenkins进行Robot Framework自动化持续工作

点击应用后保存,项目配置完成!!!

 

注:

1、Default Subject:邮件主题,可以书写成:XXX项目自动化测试通知:$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS! 分析下这几个参数什么意思:$PROJECT_NAME 构建项目的名称,也就是selenium_2_combat;# $BUILD_NUMBER 构建的号码;$BUILD_STATUS构建状态,这几个参数,它会自动读取,按照这种格式书写即可。

 

 

2、Default Content:邮件内容,这块是重点,最能体现报告的重点,这里我们调用的是$DEFAULT_CONTENT变量,实际是用到robot_results.groovy文件:

 

配置如下:

$DEFAULT_CONTENT变量来源:系统设置——> Extended E-mail Notification

 

$DEFAULT_CONTENT变量配置:${SCRIPT,template="robot_results.groovy"}

(四)、使用Jenkins进行Robot Framework自动化持续工作

robot_results.groovy文件是在$Jenkins_Home/email-templates目录下的

(四)、使用Jenkins进行Robot Framework自动化持续工作

robot_results.groovy内容请看如下:

robot_results.groovy文件下载地址:https://download.****.net/download/glongljl/10396246

注:注意附件上的路径<a href="${rooturl}${build.url}robot/report/report.html">,如果跳转显示不正确,需做修改。

 

3.   邮件查收

定期“构建”

(四)、使用Jenkins进行Robot Framework自动化持续工作

 

对应邮箱查收如下

(四)、使用Jenkins进行Robot Framework自动化持续工作

查看详细的报告

(四)、使用Jenkins进行Robot Framework自动化持续工作

(四)、使用Jenkins进行Robot Framework自动化持续工作

 

C.     Jenkins常见错误

1.   jenkins调用robot_results.groovy 未生效

配置如下:

任务配置:Default Content引用$DEFAULT_CONTENT变量

(四)、使用Jenkins进行Robot Framework自动化持续工作

$DEFAULT_CONTENT变量配置:${SCRIPT,template="robot_results.groovy"}

(四)、使用Jenkins进行Robot Framework自动化持续工作

robot_results.groovy文件是在$Jenkins_Home/email-templates目录下的

(四)、使用Jenkins进行Robot Framework自动化持续工作

robot_results.groovy内容请看如下:

robot_results.groovy文件下载地址:https://download.****.net/download/glongljl/10396246

结果邮箱收到时没有读取robot_results.groovy的模板内容

(四)、使用Jenkins进行Robot Framework自动化持续工作

 

 

经过分析:

是由于缺少groovy-postbuild插件操作的,安装groovy-postbuild插件

(四)、使用Jenkins进行Robot Framework自动化持续工作

(四)、使用Jenkins进行Robot Framework自动化持续工作

groovy-postbuild插件安装完之后,重新执行计划,邮箱可以获取到模板信息的,如下:

(四)、使用Jenkins进行Robot Framework自动化持续工作

2.   Robot Framework - Jenkins 的测试报告打不开

点击邮件的链接

(四)、使用Jenkins进行Robot Framework自动化持续工作

以及点击Jenkins上的链接

(四)、使用Jenkins进行Robot Framework自动化持续工作

结果界面都会报如下错误:

(四)、使用Jenkins进行Robot Framework自动化持续工作

 

解决办法:

 

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

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

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

 

2. 如果你是用msi安装的

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

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

 

3. 如果你是用tomcat 启动的

有个临时的解决方法

打开jenkins 首页——>进入系统管理——>进入脚本命令行

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

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

(四)、使用Jenkins进行Robot Framework自动化持续工作

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

 

之后问题正常显示如下:

(四)、使用Jenkins进行Robot Framework自动化持续工作