(四)、使用Jenkins进行Robot Framework自动化持续工作
A. 目标:
利用jenkins可以定期执行自动化,使自动化持续执行,不断优化
B. 配置
1. 创建任务
2. 任务的配置
1) General
2) 源码管理
3) 构建触发器
注:表示每天凌晨1点执行
4) 构建环境
5) 构建
如果在Windows系统中搭建jenkins的话,在构建中,选择“Execute Windows batch command”,输入pybot.bat d:\test.txt (这只是举个例子,具体执行哪个目录下的哪些case,根据实际情况决定)
如果不清楚pybot.bat的用法,可以用RIDE跑一个用例,看command信息,先直接拿过来调试用用
注:
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%,这里应该是测试用例执行成功率和通过率的设置
注:如果不知道Directoryof Robot output填什么路径,可以通过控制台输出进行定位,如下:
其实report.html和log.html的输出路径是在启动脚本控制的,如下:
Email 信息:
点击“增加构建后操作步骤”,然后点击“Editable Email Notification”,进入邮件内容详细配置界面。
点击页面上的Advanced settings设置什么时候触发发送邮件的功能:
把默认的trigger给删除掉,然后新增一个trigger,然后选择Always选项,如此便不管构建成功还是失败都会发送邮件。
点击应用后保存,项目配置完成!!!
注:
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"}
robot_results.groovy文件是在$Jenkins_Home/email-templates目录下的
robot_results.groovy内容请看如下:
robot_results.groovy文件下载地址:https://download.****.net/download/glongljl/10396246
注:注意附件上的路径<a href="${rooturl}${build.url}robot/report/report.html">,如果跳转显示不正确,需做修改。
3. 邮件查收
定期“构建”
对应邮箱查收如下
查看详细的报告
C. Jenkins常见错误
1. jenkins调用robot_results.groovy 未生效
配置如下:
任务配置:Default Content引用$DEFAULT_CONTENT变量
$DEFAULT_CONTENT变量配置:${SCRIPT,template="robot_results.groovy"}
robot_results.groovy文件是在$Jenkins_Home/email-templates目录下的
robot_results.groovy内容请看如下:
robot_results.groovy文件下载地址:https://download.****.net/download/glongljl/10396246
结果邮箱收到时没有读取robot_results.groovy的模板内容
经过分析:
是由于缺少groovy-postbuild插件操作的,安装groovy-postbuild插件
groovy-postbuild插件安装完之后,重新执行计划,邮箱可以获取到模板信息的,如下:
2. Robot Framework - Jenkins 的测试报告打不开
点击邮件的链接
以及点击Jenkins上的链接
结果界面都会报如下错误:
解决办法:
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","")
注:方法3 都可以使用,但是重启后就失效了,需要重新执行
之后问题正常显示如下: