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

相关文章

MySQL分表自动化创建的实现方案

《MySQL分表自动化创建的实现方案》在数据库应用场景中,随着数据量的不断增长,单表存储数据可能会面临性能瓶颈,例如查询、插入、更新等操作的效率会逐渐降低,分表是一种有效的优化策略,它将数据分散存储在... 目录一、项目目的二、实现过程(一)mysql 事件调度器结合存储过程方式1. 开启事件调度器2. 创

详解如何在React中执行条件渲染

《详解如何在React中执行条件渲染》在现代Web开发中,React作为一种流行的JavaScript库,为开发者提供了一种高效构建用户界面的方式,条件渲染是React中的一个关键概念,本文将深入探讨... 目录引言什么是条件渲染?基础示例使用逻辑与运算符(&&)使用条件语句列表中的条件渲染总结引言在现代

Python Invoke自动化任务库的使用

《PythonInvoke自动化任务库的使用》Invoke是一个强大的Python库,用于编写自动化脚本,本文就来介绍一下PythonInvoke自动化任务库的使用,具有一定的参考价值,感兴趣的可以... 目录什么是 Invoke?如何安装 Invoke?Invoke 基础1. 运行测试2. 构建文档3.

Windows自动化Python pyautogui RPA操作实现

《Windows自动化PythonpyautoguiRPA操作实现》本文详细介绍了使用Python的pyautogui库进行Windows自动化操作的实现方法,文中通过示例代码介绍的非常详细,对大... 目录依赖包睡眠:鼠标事件:杀死进程:获取所有窗口的名称:显示窗口:根据图片找元素:输入文字:打开应用:依

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

如何在一台服务器上使用docker运行kafka集群

《如何在一台服务器上使用docker运行kafka集群》文章详细介绍了如何在一台服务器上使用Docker运行Kafka集群,包括拉取镜像、创建网络、启动Kafka容器、检查运行状态、编写启动和关闭脚本... 目录1.拉取镜像2.创建集群之间通信的网络3.将zookeeper加入到网络中4.启动kafka集群

Jenkins中自动化部署Spring Boot项目的全过程

《Jenkins中自动化部署SpringBoot项目的全过程》:本文主要介绍如何使用Jenkins从Git仓库拉取SpringBoot项目并进行自动化部署,通过配置Jenkins任务,实现项目的... 目录准备工作启动 Jenkins配置 Jenkins创建及配置任务源码管理构建触发器构建构建后操作构建任务

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

如何使用 Bash 脚本中的time命令来统计命令执行时间(中英双语)

《如何使用Bash脚本中的time命令来统计命令执行时间(中英双语)》本文介绍了如何在Bash脚本中使用`time`命令来测量命令执行时间,包括`real`、`user`和`sys`三个时间指标,... 使用 Bash 脚本中的 time 命令来统计命令执行时间在日常的开发和运维过程中,性能监控和优化是不