Robotframework学习笔记(二):利用jenkins搭建分布式自动化执行

  • Post author:
  • Post category:其他


上一篇中已经成功在本地搭建好robotframework+RIDE的自动化框架,并且成功执行了一个简单的用例。对于多个项目的自动化测试来说,仅仅在本地电脑上实现一套自动化测试框架是不够的,还需求通过一定的调度方式,来监控不同版本的自动化情况,甚至还需要做一些定时、发邮件等的功能。

这些功能利用开源的jenkins框架就可以实现,Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。 java语言开发,用于监控持续重复的工作,包括:持续的软件版本发布/测试项目,监控外部调用执行的工作。

本篇就来探索下如何用jenkins来搭建分布式自动化执行。

首先需要搭建一个jenkins,本人采用了war的方式来启动。

Jenkins以及插件的安装源采用了国内的镜像源:

https://mirrors.tuna.tsinghua.edu.cn/jenkins/

。这里安装了最新的jenkins版本2.212。

下载完后可以直接通过java – jar Jenkins.war直接启动。

在刚启动时,由于网络原因会导致部分安装包的缺失,可以根据提示,在上述镜像源中找到需要的安装包,下载hpi文件,然后在Jenkins管理->Manage Plugins->高级中上传插件安装。

安装好jenkins后,就可以开始分布式自动化的搭建了。本人参考了

https://www.cnblogs.com/gcgc/p/9446274.html

里面提示的两篇文章。

配置节点启动方式的时候,发现没有“launching agent by connecting to the master”,因此要先去“Configure Global Security”->TCP port for inbound agent设置下。

然后可以正式配置节点:

填写好远程执行目录,




远程工作目录”部分需要填写要远程控制的服务器的共享文件夹的地址信息。

该地址信息用于存储jenkins远程控制时需要临时放置的相关文件。

节点属性中要配置好Path属性,python路径和chrome的路径。

保存后点开节点,可以看到连接的方式:

这个错误也是令人吐血,Agent slave0页面上显示的

http://127.0.0.1:8081/computer/slave0/slave-agent.jnlp


是错误的,后来直接在浏览器上输入,发现是端口错误,应该是8080。




在jdk->jre->bin中打开javacpl,在安全中“例外站点”添加jenkins地址(我这里把8080和8081都加上了)

后面本人直接把文件下载到本地,输入javaws -wait slave-agent.jnlp,即可启动slave-agent。(不加wait参数好像看不到启动状态)

新建自由风格的任务,“闲置项目的运行节点”选择之前建的slave0节点

构建选择“Excute Windows batch command”输入命令robot <路径>,构建后操作选择“Publish Robot Framework test results”填写生成结果的目录


然后可以执行,但是查看控制台的时候发现还是报错。

应该把构建命令改成“robot -d D:\robot\demo\result\  D:\robot\demo\suite1”(加上测试报告生成的路径)

然后在jenkins打开测试结果网页时,又报错了

经网上搜索各种解决方案,最后改变了jenkins启动的方式:java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar jenkins.war 加上参数,重新启动后,重新执行就可以查看了。

为了美化测试报告,又加了Allure插件。在jenkins中安装

Allure Jenkins Plugin

插件,然后在Global Tool Configure中加入Allure Commandline的配置,

任务的构建如下图设置:(有个小问题Path路径和—listen引号后面的路径需要保持一致,但是这里换成其他路径会生成不出数据,待解决)


本人这边由于网速原因Allure Commandline包下载不下来,于是自己去网上下载以后解压放到报错的目录中。

生成漂亮的报告,完美!



版权声明:本文为cc1418zht原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。