当前位置: 首页 > 工具软件 > WIN_JELLY > 使用案例 >

win10下docker + jenkins + RobotFramework + Allure持续集成

隆钊
2023-12-01

UI自动化测试持续集成

本文介绍在win10环境下,如何使用docker + jenkins + robot framework + Allure 做自动化持续集成及生成优美的自动化测试报告。

1. 安装docker容器

  1. Docker for Windows的当前版本运行在64位Windows 10 Pro,专业版、企业版和教育版(1607年纪念更新,版本14393或更高版本)上。Ps:家庭版是不行的,如果你是家庭版,那么一是升级到专业版,破解专业版推荐个地址:http://blog.csdn.net/SONGCHUNHONG/article/details/78006389 ,二是安装Docker Toolbox,自行网上百度http://blog.csdn.net/tina_ttl/article/details/51372604
  2. 如果你满足Docker for Windows的环境条件了,那么首先检查电脑的虚拟化开启了没有:进入任务管理器(ctrl+alt+delete),点击性能->cpu ,查看虚拟化是否已启用,如果虚拟化是已禁用,那么你需要重启电脑进入bios开启虚拟化(我们的发的笔记本cpu都是支持虚拟化的,重启时进入bios按esc -> 再按f12 -> 去开启虚拟化)
  3. 开启虚拟化重启后,进入任务管理器看虚拟化是否已启用。

4 然后再是进入电脑的控制面板->程序->启用或关闭Windows功能->把Hyper-v勾上,启用后电脑会重启,后面就可以下载并安装Docker for Windows了。

下载安装

  1. 进入网址https://docs.docker.com/docker-for-windows/install/#download-docker-for-windows 下载并安装。我安装的是稳定版。安装过程没什么要注意的。

  2. 启动以后会出现在桌面的右下角区域,鼠标放上去以后显示Docker is running表示启动成功,第一次安装启用好像是会弹出个Docker Cloud登录界面,去注册然后登录,使用和git有点类似,可以pull图像等等

2.拉取并启动jenkins镜像

新建文件夹D:\cds2UItest\jenkins用于存放jenkins登录的密码和jenkins初始目录,然后
docker run -p 8080:8080 -p 50000:50000 -v D:\cds2UItest\jenkins:/var/jenkins_home -d jenkins/jenkins

端口8080:8080为docker容器启动的端口和映射到本地的端口。50000端口打开用于后面的slave使用,
-v为要挂在的本地磁盘,用户后续查看jenkins密码登录。

3. 登录jenkins配置

打开网页,登录localhost:8080,默认安装推荐插件,后续需要使用的插件我们会重新安装。
然后需要设置初始账号密码

如果jenkins安装不上任何插件,请查看此篇文章解决
https://www.cnblogs.com/sxdcgaq8080/p/10489326.html

进入主页,调整jenkins语言为中文,manage jenkins>manage plugins->available 查找locale插件,下载并重启jenkins。直接localhost:8080/restart
在manage jenkins->configure system–>locale中设置为zh_CN
并勾选如下选项

如果还是没有切换为中文,查找并安装另一插件Localization: Chinese (Simplified)后重启

4. 安装robotframework插件

5. 添加节点

我们启动Jenkins服务的这台机器在Jenkins里叫做master,而其他的连到master上的机器(物理机、虚拟机都可以)都是slave,也叫节点。
1.点击系统管理,然后点击管理节点,就看到如下界面:

  1. 点击新建节点

(这是静态连接的方式,就是我先设置好节点,由slave自己去连master作为这个节点。另外也有一种动态连接的方式,不用先设置好节点,直接用slave.jar连过来,这里就不详细介绍了)
3.输入slave的名字,点确定

上图有几个需要注意的地方:
a、executors:表示在slave上可以并行执行几个线程,也可以点后面的问号看说明。对于RF来说,建议设置为1。
b、远程工作目录:在slave上创建jenkins工作目录的路径,我一般设置为D:\JK
c、标签:可以给slave加上一个或多个标签,通过标签选择slave
d、启动方法:启动slave的方法,推荐选第二个Launch slave agents via Java Web Start。没有选项选择第一个替代

注意:如果在jenkins的启动方法找不到Launch slave agents using Java Web Start这个,请按此步骤设置:系统管理-Configure Global Security-TCP port for JNLP agents是被禁用的,选择随机选取或者自行制定端口即可。(按照这个方法我没有配置出Java Web Start的选项,后面选择用launch agentby connecting to the master替代)记住,如果是用来执行RF自动化测试案例的slave,严禁选择windows service的方式,否则后果自负。
4.保存后 此时的节点是不能使用的

5点击目标节点slave1,弹出如下界面

6.点击Agent slave1界面的“Launch”按键下载slave-agent文件。启动方式1:下载后双击slave-agent文件,弹出如下右侧界面,connect表示已连接(一般用在Windows系统上,需要javaws.exe(在Java的bin目录中可以找到)程序才能打开。如果提示错误,请卸载JDK后重新安装。)

启动方式2:下载slave.jar到本地,然后进入存放slave.jar的目录,复制粘贴并运行java -jar slave.jar -jnlpUrl http://xxxxx即可启动。
三、配置运行Job任务
1.点击Jenkins左上角的“新建”,在下图中输入名称,并选择“构建一个自由风格的软件项目”,点击确定

2.设置丢弃旧的构建(此步可以设置,可以不设置。无要求)

  1. 在“构建”中选择“Execute Windows batch command”,输入指令"pybot.bat D:\work\RIDE\test\testsuit.txt"(RF的工作目录)或者"robot D:\work\RIDE\test\testsuit.txt"(RF的工作目录),依据自己运行的环境而定。
  1. 构建后操作:我们要增加构建后步骤-Publishes Robot Framework test results,第一个output默认可以为空,如果前面的pybot.bat指定了输出目录,那么这里也要对应进行设置,否则他找不到output.xml就没法解析结果了。

  2. 配置邮件,在构建后操作中选择“Editable Email Notification”,分别设置Content Type和写入如下邮件通知模板至Default Content中,然后点击保存。

(本邮件是程序自动下发的,请勿回复!)
构建结果 - ${BUILD_STATUS}
构建信息
项目名称 : P R O J E C T N A M E 构 建 编 号 : 第 {PROJECT_NAME} 构建编号 : 第 PROJECTNAME{BUILD_NUMBER}次构建
SVN 版本: ${SVN_REVISION}
触发原因: ${CAUSE}
构建日志: ${BUILD_URL}console
构建 Url : ${BUILD_URL}
工作目录 : ${PROJECT_URL}ws
项目 Url : ${PROJECT_URL} Changes Since Last Successful Build:
历史变更记录 : ${PROJECT_URL}changes ${CHANGES_SINCE_LAST_SUCCESS,reverse=true, format=“Changes for Build #%n:%c”,showPaths=true,changesFormat="[%a]%m",pathFormat=" %p"} Failed Test Results $FAILED_TESTS
构建日志 (最后 100行): ${BUILD_LOG, maxLines=100}

  1. 打开slave agent弹出connected提示框后,点击左上角的“立即构建”按键。如下图

四、上面讲述了如何配置一个普通的Jenkins Job任务,但此类型任务需人工的手动去执行构建操作,而Jenkins也可以配置定时任务,从而让我们配置好的JOB在我们指定的时间去自动执行,下面讲述如何配置Jenkins定时任务。
1、添加节点,配置Job等方法,步骤如上面操作所示。
2、在配置Job时,其中有一个构建触发器的选项,如图所示:

如上述,选择build periodly(即周期构建),如上图表示每天2:00自动构建一次。
日程表(Build periodically)格式:用cron格式,五个空格隔开的字符组成,分别表示分 时 天 月 年,*表示所有,如下图配置:
H 2 * * * (每天2:00 必须build一次源码)
在 Schedule 中填写 0 * * * *。
第一个参数代表的是分钟 minute,取值 0~59;
第二个参数代表的是小时 hour,取值 0~23;
第三个参数代表的是天 day,取值 1~31;
第四个参数代表的是月 month,取值 1~12;
最后一个参数代表的是星期 week,取值 0~7,0 和 7 都是表示星期天。
例1:0 12,20 * * 表示的就是每天的12点和20点执行一次构建
例2:
/5 * * * *表示每5分钟执行一次构建
例3:0 2 * * *表示每天2点执行一次构建
3、通过增加build periodly选项,就可完成自动构建任务。

环境部署:jenkins配置邮件通知
完成基于jenkins的持续集成部署后,任务构建执行完成,测试结果需要通知到相关人员。这里介绍如何在jenkins中配置邮件通知的方法。。。

一、安装邮件插件
由于Jenkins自带的邮件功能比较鸡肋,因此这里推荐安装专门的邮件插件,不过下面也会顺带介绍如何配置Jenkins自带的邮件功能作用。
可以通过系统管理→管理插件→可选插件,选择Email Extension Plugin插件进行安装:

由于我已经安装了该插件,因此这里显示在已安装目录下,还未安装的童鞋可以通过右上角的搜索框搜索改插件,然后在线安装,安装好之后重启Jenkins。

二、系统设置
通过系统管理→系统设置,进行发件人邮件配置:

2、设置发件人等信息详解
PS:这里的发件人邮箱地址切记要和系统管理员邮件地址保持一致(当然,也可以设置专门的发件人邮箱,不过不影响使用,根据具体情况设置即可)

上图的默认收件人邮箱可以添加多人,中间用英文半角逗号隔开即可。

附:邮箱内容模版(Default Content):

${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志 本邮件由系统自动发出,无需回复!
各位同事,大家好,以下为${PROJECT_NAME }项目构建信息
构建结果 - ${BUILD_STATUS}

构建信息

失败用例


$FAILED_TESTS

最近提交(#$SVN_REVISION)


  • ${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="
  • %d [%a] %m
  • "}
详细提交: ${PROJECT_URL}changes
        </td>    
    </tr>    
</table>    

上面的几步完成后,点击应用,保存即可。
5、配置Jenkins自带的邮件功能(这里只有邮箱测试配置有用)
配置内容如下,和Email Extension Plugin插件同样的配置,可以通过勾选通过发送测试邮件测试配置按钮来测试配置是否成功发送邮件,如下图:

三、项目配置
在完成系统设置后,还需要给需要构建的项目进行邮件配置。
1、进入项目配置界面
进入新建的项目界面,点击配置按钮,进入系统配置页面:

2、配置构建后操作模块
进入系统配置页面后,点击上方的构建后操作选项,配置内容如下,接上文:

进入构建后操作的模块,然后会看到下面的内容,具体的配置信息如图中标注:

接上图:

配置内容默认即可,邮件内容类型可以根据自己的配置选择,收件人列表可以从前面的系统设置中默认收件人选项配置。

运行jenkins时如果报错:[ ERROR ] Parsing ‘C:\Users\31190\zzbtest\testsuite.txt’ failed: UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xd0 in position 0: invalid continuation byte
修改电脑语言

设置Allure报表优化:
由于Allure生成的测试报告相对于RF自带的测试报告更美观和直观,且功能较多,所以计划jenkins中集成Allure来进行优化。
1)安装Allure插件
在Jenkins的插件管理页面,搜索“allure”,在搜索结果页,选择“Allure Jenkins Plugin”进行安装。(我当前可以直接搜到这个插件,所以就直接安装了)。
2)Allure Commandline模块安装

此处最好手动下载(下面有介绍),尝试了几次自动下载都没成功过。allure源码地址https://bintray.com/qameta/generic/allure2。
Win10安装allure:
安装Allure需要的环境:
1) JDK1.8+(我当前笔记本JDK版本为java version “1.8.0_171”)

2) 安装Allure有两种方式,官网都有介绍
I. 下载安装包,配置allure环境

II. 通过scoop进行安装(win10推荐)
首先需要安装scoop,在windows安装scoop需要使用powershell工具,这个在windows10上是自带的工具。如下图:

打开powershell工具后,如下图所示:

执行iex (new-object net.webclient).downloadstring(‘https://get.scoop.sh’)开始下载scoop并安装,如果报错的话执行Set-ExecutionPolicy RemoteSigned -scope CurrentUser
然后再次安装scoop。
安装完scoop后,就可以按照官方文档安装allure了。

这里需要注意的是第二条命令\bin\checkver.ps1 allure -u。这里需要找到scoop的安装目录,找到对应的checkver.ps1文件。比如我的电脑上路径为【默认的安装路径】:
C:\Users\【用户名】\scoop\apps\scoop\current\bin

3)如图所示,安装allure-robotframework
https://github.com/allure-framework/allure-python/tree/master/allure-robotframework
以上git地址是allure-robotframework的源码路径,可以从中找到安装的方法。

补充说明下:上边pip安装完allure-robotframework后,执行robot命令生成allure报告的时候后边的./my_robot_test是自己运行RF用例的目录位置,请根据自己的环境进行更换。比如我的路径为:D:\Python27\testproject\Test\Suite-2-8.robot。跑完之后在/set/your/path/here 路径会生成allure报告的组件。如下样式:

jenkins-发送allure邮件测试报告
1、安装插件 allure-jenkins-plugin
2、在全局工具配置中,配置allure命令行
3、全局工具配置中,添加JDK配置
4、配置slave节点工具(JDK+Allure)-配置在节点上的工具路径
5、Job中,构建后操作-添加allure报告输出配置。
参考链接: https://yq.aliyun.com/articles/664249?spm=a2c4e.11153940.blogcont664250.18.373242e6uqgm7V python+pytest单元测试框架之在Jenkins上生成Allure测试报告
jenkins-集成Allure测试报告
.在Jenkins的页面中点击“系统管理”->“管理插件”,搜索“allure”,在搜索结果页,选择“Allure Jenkins Plugin”进行安装。安装完成之后重启一下Jenkins。

Jenkins界面
进入插件管理界面,选择“可选插件”->在右上角过滤编辑框中写入"Allure",按回车键,然后勾选Allure,点击直接安装

2、在全局工具配置中,配置allure命令行
在Jenkins的主界面中找到并进入“(Global Tool Configuration)全局工具管理”页面

Global Tool Configuration管理界面
找到Allure Commandline安装 字样,点击新增Allure Commandline

安装Allure Commandline
点击后,在弹出下面的页面,勾选自动安装,From Maven Central 。输入Allure的命令别名和版本(这里我选择最新版本号)后,点击Apply 和Save

此处可以选择手动拉取本地下载的allure路径,不需要带bin
如下图:

3、全局工具配置中,添加JDK配置
4、配置slave节点工具(JDK+Allure)-配置在节点上的工具路径
全局工具配置中增加:

Manager jenkins -> configure system中配置:

5、配置Job,构建后操作-添加allure报告输出配置。

1、在Jenkins主界面,进入 jenkins 持续集成项目配置界面
2.在构建后操作下拉一栏选择“Allure Report”,进入“Allure Report”界面,写入保存报告的路径名称“report”,在“Properties”一栏分别写入Key和Value对应的变量值和存放测试用例文件的路径,如下图所示:

配置report路径
这里需要注意一点就是:执行指令生成测试报告的路径名称和保存测试报告的路径名称必须一致,不然会提示错误。如下图设置

四、查看运行结果
在Jenkins界面点击“立即构建”,会在左下角出现进度条显示,当进度条显示完成后,刷新下当前界面,可以在页面右侧看到运行结果,点击界面的“Allure Report”字样,可查看该测试用例运行的详细情况

到此,jenkins可以发送allure模板的测试报告邮件
只需要修改email中的default content,以下模板任选一个
邮件内容(一)

以下是Jenkins自动发送的邮件,请勿回复!

allure报告在线查看or下载allure-report.zip用firefox离线查看,测试用例见附件




项目描述:${JOB_DESCRIPTION}


项目名称:$PROJECT_NAME
构建编号:$BUILD_NUMBER
构建状态:$BUILD_STATUS
触发原因:${CAUSE}
构建地址: ${BUILD_URL}
构建日志地址: ${BUILD_URL}console
系统allure测试报告: ${PROJECT_URL}${BUILD_NUMBER}/allure

${JELLY_SCRIPT}

邮件内容(二)

${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志

以下是Jenkins自动发送的邮件,请勿回复!


构建信息

    <tr>
        <td>
            <div>${FILE ,path="D:/jenkins/workspace/testlogin/allure-report/index.html"}</div>
        </td>
    </tr>

</table>
</div>

测试报告

 类似资料: