RobotFramework与Jenkins集成方法

CSG组的Jenkins持续集成环境和RobotFramework自动化环境,一直是两条并行的线,各自发挥着作用,虽然在初稿蓝图里是要将二者集成的,但是由于两边进度不一致,一直到不久前才终于完成了将RobotFramework环境接入Jenkins环境,总算是把这个环给闭合了。下面就给大家讲解一下,如何将RobotFramework环境与Jenkins环境集成在一起使用,以及集成后可能会遇到的问题、解决办法。

RobotFramework环境与Jenkins环境集成方法

RobotFramework环境与Jenkins环境部署在同一主机上也可以,部署在不同主机上也可以,CSG组的实际部署环境属于前者,所以我们这里优先以前者为例进行讲解:Jenkins里Job里各个配置项都有详细的在线帮助文档,所以我们不对每个配置项都做解释,这里只介绍与RobotFramework相关的配置项。

 

首先登录jenkins的web操作界面,点击左侧菜单栏中的“新建”,新建界面如下:

配置项:Item名称

含义:相当于给此次Job命名示例:这里我们填写为“RF-test”
配置项:构建一个自由风格的软件项目
含义:自由风格的意思就是可以自主选择搭配的插件示例:勾选此选项点击“OK”按钮,完成Job的创建,然后进入Job的详细配置界面,如下:

配置项:描述

含义:Job的文字描述
示例:自动化测试范围、版本等信息

配置项:丢弃旧的构建

含义:避免Job执行记录过多占用硬盘空间,按一定策略清理记录信息
示例:勾选此选项

  • 子配置选项:保持构建的最大个数

含义:最多保留多少个构建

示例:10

配置项:构建-增加构建步骤

含义:Job核心内容,通过不同方式来执行指定命令示例:选择“Execute shell”,在“Command”中填写Robot执行命令:export DISPLAY=:10

pybot /home/test/PAMC_V2.0/自动化测试/例行测试/调用平台接口测试/bailu报表管理.txt

配置项:构建后操作-增加构建后操作步骤

含义:根据添加插件不同,可以在执行完成后,做不同的工作,eg:测试结果分析、邮件发送等
示例:选择“Publish Robot Framework test results”

  • 子配置项:Directory of Robot output

含义:指定Robot的结果文件存放位置,如果Command命令中pybot已经指定了输出目录,那么此处就不需要配置,如果没有就需要指定,否则会因为找不到output.xml无法解析结果

示例:/tmp/

  • 子配置项:Thresholds for build result

含义:不稳定用例和稳定用例的临界值,但是由于我们不期望有不稳定的用例仍然认为结果是准确的,所以这里都设置为100%

示例:两个都填写100.0%

最后,点击“保存”按钮即可完成整个配置过程,点击“立即构建”即可运行本次Robot自动化测试,当Job执行完成,即可查看执行结果。

 

返回到Job列表,可以看到当添加了RobotFramework的Job,会在列表中显示一个Robot的小图标,如下图所示:

FAQ

通过上述配置,发现是不是很简单,但是其实过程中还是遇到了很多问题的,这里我选取了几个比较典型的问题和大家分享一下。 
Q1:如果RobotFramework环境与Jenkins环境分别部署在两个不同环境该怎么办?
A1:首先在构建配置中要设置为“Execute shell script on remote host using ssh”并且还需要配置“Send files or execute commands over SSH”,这样才能保证在远端主机通过SSH协议执行pybot命令并且回传output测试结果,而且要注意这种远程执行命令的方式,不能使用中文路径,否则会出现“data source”不存在的错误。 
Q2:RobotFramework环境与Jenkins环境在同一主机,用例执行完成,仍提示data source不存在?
A2:一是要看下Jenkins系统配置里的工作空间根目录设置是否正确;二是要看Jenkins工作空间目录的权限和Robot测试用例所属权限是否一致。 
Q3:查看测试报告提示Opening Robot-Framework log failed
A3:当我们查看结果文件Open report.html、Open log.html时,总是提示:Opening Robot Framework log failed,如下图所示:有两种解决办法:

1.修改jenkins.xml配置文件,将<arguments>参数修改为:

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

2.在Jenkins系统管理中运行命令:

System.setProperty(“hudson.model.DirectoryBrowserSupport.CSP”, “”)

运行成功后,在浏览器中按Shift+F5即可查看报告了。

发表评论