Jenkins Pipelines+Docker执行RobotFramework自动化测试

2024-03-07 11:40

本文主要是介绍Jenkins Pipelines+Docker执行RobotFramework自动化测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、Jenkins Pipelines介绍

Pipeline,简而言之,就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化。

Pipeline是Jenkins2.X的最核心的特性,帮助Jenkins实现从CI到CD与DevOps的转变

Pipeline是一组插件,让Jenkins可以实现持续交付管道的落地和实施。

持续交付管道(CD Pipeline)是将软件从版本控制阶段到交付给用户或客户的完整过程的自动化表现。软件的每一次更改(提交到源代码管理系统)都要经过一个复杂的过程才能被发布。

Pipeline提供了一组可扩展的工具,通过Pipeline Domain Specific Language(DSL)syntax可以达到Pipeline as Code(Jenkinsfile存储在项目的源代码库)的目的。

二、Jenkins Pipelines语法

1.常用关键字

关键字描述
pipeline声明式的pipeline脚本
agent执行任务的代理,执行节点,如:any,none, label, node,docker,dockerfile
stages阶段集合,包裹所有的阶段(例如:打包,部署等各个阶段)
stage阶段,被stages包裹,一个stages可以有多个stage,例如:“Build”,“Test”,“Deploy”。
steps步骤,为每个阶段的最小执行单元,被stage包裹
post执行构建后的操作,根据构建结果来执行对应的操作,如:always、changed、failure、success、unstable、aborted
environment声明一个全局变量或者步骤内部的局部变量,如:environment { P1="parameters 1" }
options

提供给脚本更多的选项。

buildDiscarder:指定build history与console的保存数量
用法:options { buildDiscarder(logRotator(numToKeepStr: '1')) }
disableConcurrentBuilds:设置job不能够同时运行
用法:options { disableConcurrentBuilds() }
skipDefaultCheckout:跳过默认设置的代码check out
用法:options { skipDefaultCheckout() }
skipStagesAfterUnstable:一旦构建状态变得UNSTABLE,跳过该阶段
用法:options { skipStagesAfterUnstable() }
checkoutToSubdirectory:在工作空间的子目录进行check out
用法:options { checkoutToSubdirectory('children_path') }
timeout:设置jenkins运行的超时时间,超过超时时间,job会自动被终止
用法:options { timeout(time: 1, unit: 'MINUTES') }
retry :设置retry作用域范围的重试次数
用法:options { retry(3) }
timestamps:为控制台输出增加时间戳
用法:options { timestamps() }

 parameters 提供pipeline运行的参数,如:parameters { string(name: 'P1', defaultValue: 'it is p1', description: 'it is p1') booleanParam(name: 'P2', defaultValue: true, description: 'it is p2') }
 triggers 触发器是自动化运行pipeline的方法,例如cron,pollSCM,或者upstream
 tools 用于引用配置好的工具,

tools {
maven 'apache-maven-3.0.1'
}

 input 暂停pipeline,提示输入内容

三、创建一个Jenkins Pipelines

1.新建pipelines

Jenkins首页->新建任务->输入一个任务名->选择流水线->点击确认

174e5450c39ae51533bcd48c8cf502e4.png

2.配置General、构建触发器

这两部分的配置请参照之前的一篇文章,本章主要是讲解pipelines,所以不在重复描述,链接如下:

 https://www.cnblogs.com/airb/p/13229354.html

3.配置pipelines

72d0f050e2ba5f4eba8397bfc901f36e.png

pipelines脚本:

pipeline {agent anyenvironment{MAVEN_HOME = "/var/lib/jenkins/workspace/ADCS_API_QAT_BVT"    //主目录 dockerfile_path = '/var/lib/jenkins/workspace/ADCS_API_QAT_BVT/环境搭建/Dockerfile'   //Dockerfile文件目录 }stages {stage('Checkout') {steps {echo 'Git拉取代码'git credentialsId: 'Git密码', url: 'Git地址'}}stage('Docker') {steps {echo 'Docker环境构建'sh 'docker build -t python:3.7.9 -f ${dockerfile_path} .'    //构建Docker环境}}stage('Test') {steps {echo '执行测试用例'sh 'docker run -i -v ${MAVEN_HOME}:/mnt python:3.7.9 robot --include BVT -d ${MAVEN_HOME}/report AGGS_API'}}}post { always { echo '清空文件'deleteDir()         //清空所有文件}}
}

4.阶段视图

任务配置完成后点击立即构建,可查看pipelines阶段视图

0d315bc96de6d633a50794f28e6f4760.png

5.查看Pipelines运行日志

构建完成后->点击左下角Console Output

275b59d1bc23f48a4cf4df7951959ab6.png

这篇关于Jenkins Pipelines+Docker执行RobotFramework自动化测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/783388

相关文章

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

Python实现自动化接收与处理手机验证码

《Python实现自动化接收与处理手机验证码》在移动互联网时代,短信验证码已成为身份验证、账号注册等环节的重要安全手段,本文将介绍如何利用Python实现验证码的自动接收,识别与转发,需要的可以参考下... 目录引言一、准备工作1.1 硬件与软件需求1.2 环境配置二、核心功能实现2.1 短信监听与获取2.

Python实现Microsoft Office自动化的几种方式及对比详解

《Python实现MicrosoftOffice自动化的几种方式及对比详解》办公自动化是指利用现代化设备和技术,代替办公人员的部分手动或重复性业务活动,优质而高效地处理办公事务,实现对信息的高效利用... 目录一、基于COM接口的自动化(pywin32)二、独立文件操作库1. Word处理(python-d

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

Python使用DrissionPage中ChromiumPage进行自动化网页操作

《Python使用DrissionPage中ChromiumPage进行自动化网页操作》DrissionPage作为一款轻量级且功能强大的浏览器自动化库,为开发者提供了丰富的功能支持,本文将使用Dri... 目录前言一、ChromiumPage基础操作1.初始化Drission 和 ChromiumPage

Python实现自动化表单填写功能

《Python实现自动化表单填写功能》在Python中,自动化表单填写可以通过多种库和工具实现,本文将详细介绍常用的自动化表单处理工具,并对它们进行横向比较,可根据需求选择合适的工具,感兴趣的小伙伴跟... 目录1. Selenium简介适用场景示例代码优点缺点2. Playwright简介适用场景示例代码

关于Docker Desktop的WSL报错问题解决办法

《关于DockerDesktop的WSL报错问题解决办法》:本文主要介绍关于DockerDesktop的WSL报错问题解决办法的相关资料,排查发现是因清理%temp%文件夹误删关键WSL文件,... 目录发现问题排查过程:解决方法其实很简单:重装之后再看就能够查到了:最后分享几个排查这类问题的小www.cp

如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

《如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件》本文介绍了如何使用Docker部署FTP服务器和Nginx,并通过HTTP访问FTP中的文件,通过将FTP数据目录挂载到N... 目录docker部署FTP和Nginx并通过HTTP访问FTP里的文件1. 部署 FTP 服务器 (