ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Jenkins集成Robot Framework

2022-01-19 08:00:38  阅读:159  来源: 互联网

标签:配置 Robot Framework 构建 jenkins Jenkins


本文介绍Jenkins如何集成Robot Framework。

目录

所用环境如下:

  • Jenkins 2.326,使用docker安装部署
  • 代理机:Windows10,安装Java环境、Robot Framework测试框架,用于执行自动化测试用例。

下面介绍具体部署流程。

一、代理机配置Java环境

启动代理节点时需要使用Java命令,所以需要配置Java环境。

1. 下载安装JDK

JDK下载地址:https://www.oracle.com/java/technologies/downloads/#java8-windows

下载完成后安装

2. 配置环境变量

新建系统变量 JAVA_HOME,变量值:C:\Program Files\Java\jdk1.8.0_311

新建系统变量classpath, 变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

编辑系统变量Path,新增 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

查看是否配置成功:java -version

$ java -version
java version "1.8.0_311"
Java(TM) SE Runtime Environment (build 1.8.0_311-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.311-b11, mixed mode)

二、添加并启动windows slave

打开jenkins平台。

进入【系统管理】 -> 【节点管理】进行新增节点

windows节点配置、启动方法参考持续集成平台Jenkins详细介绍

三、安装Robot Framework 插件

Robot Framework plugin用于在Jenkins中收集和发布Robot Framework的测试结果,下面介绍两种安装方法。

方法1:到【插件管理】页面搜索Robot Framework plugin进行安装下载。

方法2:如果Jenkins无法连接网络,可以先到可以上网的电脑上下载对应的hpi格式插件后上传。Robot Framework plugin下载地址:https://plugins.jenkins.io/robot/#releases,选择相应版本,下载完成后进入【插件管理】,点击【高级】,到【上传插件】栏进行插件上传安装。

四、邮件配置

先安装插件Email Extension PluginEmail Extension Template Plugin

进入【系统管理】-> 【配置】页面,设置系统管理员地址:

下拉找到【Extended E-mail Notification】进行配置。

配置邮件内容模板

如果要查看邮件发送的日志可以勾选Enable Debug Mode,邮件配置没问题后再关掉它:

这里也可以设置默认触发方式,这是一个全局的设置,点击Default Triggers

进入【邮件通知】,配置方法和前面一样,配置完成后测试一下邮件是否能够发送成功。

如果是内网环境,需要确保Jenkins服务器能够与邮件服务器通信。

五、创建项目

介绍两种项目创建方法。

方法1:创建自由风格项目

构建配置

新建自由风格项目,设置项目运行的代理节点,标签为前面添加windows slave时指定的标签。

我这里不设置源码管理和触发器,手动进行构建。

添加构建步骤,选择windows bat脚本。

通过标签 login 来执行下面的robot framework测试用例:

robot命令:

robot -d D:\ProgramWorkspace\DevTest-Notes\CI\jenkins\rf_results --include=login D:\ProgramWorkspace\DevTest-Notes\RobotFramework\PO_demo

在输入框中输入执行robot framework用例的robot命令:

配置RF测试报告

接下来添加构建后操作步骤,首先添加【Publish Robot Framework test results】配置RF测试报告。

指定报告生成位置及结果阈值

配置邮件提醒

添加邮件提醒

构建

点击构建,执行完成后可以看到RF报告:

点击report.html查看详细日志,可能会报错:Opening Robot Framework report failed

解决方案:https://stackoverflow.com/questions/36607394/error-opening-robot-framework-log-failed

进入【Manage Jenkins】,点击【Script Console】,在输入框中输入如下命令并点击【Run】:

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","sandbox allow-scripts; default-src 'none'; img-src 'self' data: ; style-src 'self' 'unsafe-inline' data: ; script-src 'self' 'unsafe-inline' 'unsafe-eval' ;")

执行完后就可以成功打开日志报告了。

如果重启了Jenkins,使用这种方式配置会丢失,又要重新运行一下上面的命令。

第二种方法是修改Jenkins容器中的 /usr/local/bin/jenkins.sh 文件,这样可以永久生效:

编辑 jenkins.sh 文件,将以下命令添加到exec java 开头的那行命令中:

-Dhudson.model.DirectoryBrowserSupport.CSP="sandbox allow-scripts; default-src 'none'; img-src 'self' data: ; style-src 'self' 'unsafe-inline' data: ; script-src 'self' 'unsafe-inline' 'unsafe-eval' ;"

如果Jenkins容器没有vi或者vim命令,可以将文件复制出来修改后,再复制回去:

$ docker cp jenkins:/usr/local/bin/jenkins.sh .   #复制到当前目录
$ vi jenkins.sh # 修改jenkins.sh文件
$ docker cp jenkins.sh jenkins:/usr/local/bin/jenkins.sh # 复制到容器中

修改完成后重启Jenkins:

$ docker restart jenkins

方法2:创建流水线项目

下面介绍第2种方法,新建一个流水线项目。

和方法1一样,我这里不设置源码管理和触发器,通过手动构建的方式触发。

Pipeline

Pipeline script的编写非常重要,主要由它来进行测试流程的控制,要执行测试脚本的代理机也在pipeline中指定。

Jenkinsfile支持两种语法形式:

  • Declarative pipeline - v2.5之后引入,采用结构化的方式。
  • Scripts pipeline - 基于groovy的语法。

本文使用Declarative pipeline编写。

下面的脚本主要实现以下功能:

  • 指定代理节点
  • 下发构建脚本命令
  • 添加构建后RF报告
  • 添加邮件提醒
pipeline {
  agent {
      node {
        label "slave-windows"
        customWorkspace "D:/ProgramWorkspace/DevTest-Notes/CI/jenkins"
    }
  }

  stages {
         stage('intialize') {
            steps {
                echo "begin"
            }
        }
    
        stage('Run Robot Tests') {
            steps {
            bat "D:/robotframework/Scripts/activate.bat&&robot -d D:/ProgramWorkspace/DevTest-Notes/CI/jenkins/rf_results --include=login D:/ProgramWorkspace/DevTest-Notes/RobotFramework/PO_demo"
            sleep 1
            }
            
            post {
                always {
                    script {
                      step(
                            [
                              $class              : 'RobotPublisher',
                              outputPath          : 'rf_results',
                              outputFileName      : 'output.xml',
                              reportFileName      : 'report.html',
                              logFileName         : 'log.html',
                              disableArchiveOutput: false,
                              passThreshold       : 100,
                              unstableThreshold   : 80,
                            ]
                      )
                    }
                    emailext (
                        subject: '\'构建通知:${PROJECT_NAME} - Build # ${BUILD_NUMBER} - ${BUILD_STATUS}\'',
                        to: "zhiyo2016@163.com", 
                        body: '${FILE,path="email2.html"}',
                    )
                }
            }
        }
    }
}

保存。

构建

手动点击【Build Now】,结果和自由风格项目类似。

jenkins平台会保存每一次构建的测试报告。

--THE END--

不是风动,不是幡动,仁者心动。——六祖慧能

标签:配置,Robot,Framework,构建,jenkins,Jenkins
来源: https://www.cnblogs.com/hiyong/p/15757888.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有