Windows实现Jenkins的自动化部署

什么是Jenkins?Jenkins有什么用?

按照我个人的理解,Jenkins就是一个很简单实现自动化工具,按照了Jenkins你就可以拥有一个类似小爱同学一样的管家,你可以通过你的手机步骤一个任务给你的小爱同学,例如打开王者荣耀,然后等个五分钟再给他关了。那小爱同学在这里起到的作用就是打开王者荣耀,关闭王者荣耀,这里的前提是你的手机本来就有王者荣耀。所以类比成Jenkins你在你的电脑部署了Jenkins不代表你这个Jenkins就可以执行你git仓库里的代码,能不能执行还得看你部署Jenkins的这台电脑有没有这个环境去运行代码的,所以不要理解错了Jenkins只是一个自动化执行的管家。

 

你为什么要用Jenkins?

这里先说一下我的项目背景,我写了一个pytest的框架,然后呢?运行这些测试用例呢,都是在本地运行的,例如像下面这样,我要执行这个测试用例那我就点击这个文件运行一下,然后查看测试结果,那么有一天呢,我想实现当我提交到git上去的时候,有个东西可以检测到我提交代码了,你知道的提交代码了,或者是我更改了测试用例那么我都要运行一下测试用例,那每次都要这样是很不方便的,而且还得拿着电脑去运行。那么有没有一种情况可以解决这个事情呢?有的Jenkins就可以做到。

511d06e318ef4213a651a3a8fade9e7d.png

Jenkins是怎么做到自动化运行的效果的呢?

 这里讲一下我用Jenkins坐了什么?我利用Jenkins创建了一个自动化任务,这个任务首先会从我填写好的git地址去拉取git代码,然后再运行我指定的文件,再用allure生成测试报告,那我们创建了这个Jenkins自动化任务,那肯定要有触发条件,Jenkins可以触发的条件有很多后面可以去了解一下,我这里用的触发条件是轮询。啥意思呢?就是隔一段时间就会去检测一下我git仓库有没有更新,例如我设置两分钟,两分钟过后查询一遍,更新了好那我就执行运行这个指定的文件,没更新也不触发运行。

实际操作

前期准备:

                Java jdk17

                Jenkins.war

                git(本地,打开cmd输入git有一大串出来)

                git(Jenkins上的git插件)

                allure   2.13.2(旧版)(本地,打开cmd输入allure有一大串出来)

                allure.hpi   2.13.2(Jenkins的安装的插件)

初次启动Jenkins:

这里我是把Jenkins的war包放在这里:

f4951e6e155c41709c9ac7d160e798e8.png

下面这个命令呢?就是进入到Jenkins所在的目录;

cd D:\Jenkins

 下面这个命令,就是用Java启动Jenkins,初次运行这个命令的时候Jenkins启动的时候会给你一串像乱码一样的很显眼的一串字母,这个就是初次登录的密码了,用户名就是admin:

java -jar jenkins.war

 Jenkins的登录:

 浏览器访问已经启动的Jenkins,这个访问就在本地的8080端口,启动的时候可以看见启动在哪个端口。浏览器直接输入下面这个地址就好了;

http://127.0.0.1:8080

3c9621920fa145c8bb06b6294f59488e.png

 访问这个地址之后就可以看见下面这个页面,把密码粘贴进去,点击继续就可以了;

d1936d6014cd46a89c49f34d29d0059e.png

 Jenkins的初步设置:

 然后就进入插件安装页面了,这里选择选择插件来安装,不选推荐,有点绕哦,右边这个

388bfbc22eb6498995a5927fa48bb622.png

自己选择的话直接点无就行了,我们要安装插件,但是我们不在这里进行安装, 直接点无,然后点击安装就好了。这样的话刷的一下就进入下一步了。

743f84dce9b0449db243c99199da388b.png

然后进入创建用户页面这里不创建账号直接使用他默认的用户和密码就行,不自己创建了,要创建也可以,但是就原有给你生成的账号和密码你就用不了; 

 43a573533bc04d749260cd7cf65a58b9.png

 

 实例配置,点击现在不要,跳过步骤就行了。6cdf376a1602468991303334ef33e045.png

 Jenkins安装git插件:

 进入首页之后点击manage Jenkins,点这个干啥,安装插件嘛,刚刚啥也没装,我这个项目需要两个插件一个git(从仓库拉取代码),一个allure(把运行的测试结果生成报告)

2b60177be4414c5db54b71440bf57500.png

点击pluging

1c9c17a707e34008bc9653a7a2046e17.png

 

点击进来这里 再点击available plugins 可用的插件,那我这里只需要git和allure,allure不采取在这里安装,因为在这里安装的allure太新了会有问题,,搜完git打勾再点击右上角的install就好了,下面我单独说一下怎么安装这个allure;

014f1b2c28504693a766fafe7d6eec6d.png

d3a5f8c0c89345aa8011abd44de6feb1.png

 

 Jenkins安装allure插件:

 上面安装好了之后,我们来安装allure这个家伙坑得很,我们先把安装包 下一下:

  点击这个网站:Index of /plugins/allure-jenkins-plugin/latest;下载红圈这个版本;

7353b1cc61b6459a81851cafb0fd8827.png

还是这个页面点击这个大红圈,再把allure的hpi旧版本安装包选择上,然后点击那个deloy就可以了,后续会提醒你更新这个插件,不要更新哈,新版的allure插件在构建这个Jenkins任务的时候,按道理在后置操作可以看见allure report,但是新版就是看不见。所以不要更新!!

6a966bf3afe24ac787f517173d68e539.png
 

那我们本地的allure要不要降级版本呢?我建议还是降级成allure 2.13.2吧,咋安装和配置看文章啦;

Allure 的安装与使用_python allure安装-CSDN博客

下面这个是下载的地址:

Central Repository: io/qameta/allure/allure-commandline/2.13.2

 146a96210e7e4ab897caaf3d66e348d1.png

 配置Jenkins的allure插件

 上面的allure安装好了之后,我们就可以去配置一下allure了,正常是不用配置的,因为allure比较特殊,所以我们还得给他配置一个相对路径,点击红圈tool来配置一下,点进去就可以看见我们按照的git插件和allure插件,git不用配置,我们来配置一下allure

9c30806c1ae348759e68d9c3c8b30012.png

 点进来如图所示,可以看见git和allure,点击设置allure

97cb713e2d5e495cb0c974d74e476d1e.png

 点击完可以看见下面我已经配置好了,这里要我们输入的有两个地方一个是名字随便起,我叫allure,你是奶龙吗?最重要的是这个installation directory,这个目录怎么来的,看好了,因为的你本地的allure已经配置在环境变量里了,所以我们随便在哪个地方打开cmd输入where allure,就会输出路径了,我们只需要复制下来这个路径就可以了,切记只需要复制我光标选中的,不要带上bin目录,因为带上bin目录就找不到allure了,好了,现在配置完成之后就点击save保存一下就好了;

4058be1215404ceeab6796e2244c3dc0.png

605d7bcb712c48259a5f44d3df32faea.png

 创建Jenkins自动化任务:

 这些都安装好了,下面就可以创建一个Jenkins自动化任务来看看,回来首页点击New item

ec04c158e710479c9fbef841e69f2fdf.png

输入名字我这里叫插件测试,然后再点击这个freestyle project就好了,再点击OK;

0ab233c578c24235adb94f1109fc8e01.png

点击进来先把考右边这个目录讲一下,可以看见general这个就是填写你这个项目的描述,再看见这个source code我们就可以配置git代码的仓库的地址,这样Jenkins就可以拉取我们推送到git的代码了,然后就是triggers触发器这里可以设置触发的模式,然后environment环境,然后就是build steps就可以构建我们运行的代码,到底是要执行拉取下来的哪个文件阿,这些;然后就是这个post-bulid Action,就是在你的build steps这些步骤执行完毕后再执行的操作通常是用来生成一些allure报告阿,或者是邮箱通知什么的,我这里主要是用来生成allure报告的,好了这里讲解完毕开始展示我的实际操作;

98514a413cb2432f9ad07d645100865a.png

首先是我什么描述也没写,掠过,你这里可以写你这个Jenkins自动化任务是来干嘛的;

cbc14813f6f8489fa5969835e702908f.png

然后就是source code management,这里配置了一个git仓库地址,啊对我自己的仓库地址,你可能会说欸,大锅,你Jenkins拉取这个仓库不用密钥什么乱七八糟的直接就可以拉吗?傻孩子,Jenkins其实也是在你的电脑本地运行的,你的电脑之前配置过git密钥,不知道密钥怎么配的看另外一篇文章,那Jenkins在你的电脑上运行,你能拉,Jenkins肯定也能拉了嘛;

 c19ab1756f804c38bfb3f22b254a2317.png 下面就是triggers触发器,environment环境,这里一起讲了,我选择的是poll scm轮询然后我配置了参数H/5 *****,意思就是五分钟检测一下我的git账号有没有更新有的话就执行这个任务,你要是不知道参数怎么配的话,你可以点击poll scm旁边的小问号,官方会教你怎么配!environment环境不用管;

3216ced0cdd1499b83bf4e9a39b8482e.png

 最最最重要的步骤来了,build step,首先是要选择你要执行的命令我选择的红圈的,因为我的Jenkins是部署在window上的,要是你的Jenkins部署在Linux你就选择execute shell;然后的话可以看见我这里配置了两个命令,下面单独讲解一下这两个命令怎么回事;

196c11e4394a4cb8a223991a6d2f25c0.png

f188754aa0324c5cbecbec18ac1d5b0c.png

 首先是:cd testcase1,很简单就是进入testcase1这个目录看一下我的git仓库,哇,我的自动化框架分层这么优秀吗?额,是的,但是这个不是重点,现在我们的大脑跟着我一起思考,你现在的大脑是空空的,新建一个文件夹叫插件测试,这个文件是不是空空的,那当Jenkins通过拉取我这个仓库的代码的时候,就会把我下面我仓库的代码这里的一整摞放到这个叫插件测试的文件夹,然后现在你大脑这个插件测试的文件夹就多了一个po层啊,config层这些全部都是我git仓库的文件嘛,那你可能会说拉取下来的应该是这样的Jenkins/ui-auto,应该会有我git仓库的项目名称,孩子不要想太多,并不会,而且直接把这一大摞放进去就OK了;

14dcaf0c89b64bf4956f147b00914e1e.png

好,有了上面的理解你终于知道了Jenkins是怎么操作的,看下面的图片,Jenkins会在一个目录下创建这个下面,名字就叫插件测试,为什么叫这个名字不叫别的,那是因为你项目命名就叫这个,那所谓的这个build step,就是在这个文件夹打开cmd命令行,然后去输入你build step的命令,首先输入第一行命令就是这个cd testcase1嘛;执行完成又执行下一个命令;

3cd2527b22b64ce68678461667fc8bfa.png

1d720d165ba847169faa726b174d74e4.png

现在来讲一下 pytest test_main.py --alluredir=allure-results 这个命令,你看上面的那个命令执行完就进入到了testcase1这个目录那我这个命令继续输入执行,就是去运行的测试用例同时去生成allure的测试报告结果嘛,这里讲解一下allure报告的生成,首先我们用allure运行测试用例的时候会先生成一份测试结果,就是allure-result,然后有了这个我们才能生成一份allure的report

 

这个report就是我们后面看见的HTML页面了呐,所以我这里执行完测试用例的代码之后生成了一个 --alluredir=allure-results,那我们生成的这个result是在哪个目录下很重要,为什么如果我们要生成测试报告HTML页面就需要这里的result结果

 

通过命令我们可以知道,我们先是进入的testcase1目录,然后又在这个目录底下执行生成allure-results,所以生成的allure-results就是在这个testcase1底下了,那如果你想把结果生成在其他目录底下你也可以修改你的运行代码为这样,例如我想他生成在allure_data目录下的allure_result可以吗?当然可以那怎么改pytest test_main.py --alluredir=allure_data\allure_results这样改就可以啦;

b74af717d13f4eb68b6ba29983c551da.png

好,下面讲一下后置操作也就是生成allure报告的操作,点击这个add 后置操作然后选择allure report就好了;

50ea3d9a5a4b477e8f84242106a6952e.png

 可以看见这里要填写allure-result的地址,根据上面的build step命令我们已经成功生成了一份allure_result结果在testcase1\allure-result的目录下,所以我这里填的testcase1/allure-result,

 

那为什么要填testcase1\allure-result,为什么不是ui-aoto/testcase1/allure-result,或者是其他的地址呢?因为allure生成报告会需要这个result结果才能生成报告,强调很多次是因为我踩了很多坑,那我来模拟一下Jenkins是怎么找这个文件的,例如你这里填的是testcase1\allure-result,那它就会直接在它之前拉取代码创建的测试插件这个文件夹直接找,所以呢相对于这个测试插件的文件夹这个生成的结果就是在testcase1\allure-result的文件夹下。

b83f58ae1e074b41a5cfd7b03187db68.png

4cd5878d8c0a45bab68578310c33aee4.png

根据上面的build step命令我们已经成功生成了一份allure_result结果在testcase1\allure-result的目录下,所以这里的

01be78eb5e1d437e87a4b098890d91e4.png

 

 上面的说完了,你看我填写的路径确实如下,好,现在我们来看看advanced这个红框,这个你可以不用管,这样配置完一保存你就可以看见allure报告了,但是我得讲解一下这个蓝色箭头的指示标;d9e55573c72f417a943afb3caadb7907.png

 点击这个蓝色箭头指的方框之后,可以看见以下内容,关注一下这个红色框框,下面它自动给你生成了一个路径参数叫allure-report,意思就是告诉你它会在这个路径生成报告,具体在哪里呢?就在插件测试这个文件夹下面就是了,通过我上面的讲解你肯定知道这个路径是相对于我们起的这个文件名字来说的,那么这个文件就应该在插件测试/allure-report,就直接在这个目录下啦;86163caf86f4480d99b0d3d7a7b9266b.png

b2d0d144b4f442c28ec182a436da0a35.png

如果你想换放置allure报告的地方,当然可以的你更改这个路径就可以了,例如你改成data/allure-report,那么就会在插件测试这个文件夹下先创建一个data再创建一个allure-report放置report了;

好上面零零散散说了一大堆,终于可以保存我们这个Jenkins自动化的测试任务了,点击Sava保存;

4d6a5e1365234f46a93959e72c004f7d.png

执行Jenkins自动化任务: 

那保存以后我们可以立即执行一下我们这个Jenkins自动化任务看看,点那个build now,或者是你不是设置了轮询吗?例如你设置的轮询是2分钟,那你把你的本地代码改一下,再推送到git上去,最晚两分钟你的Jenkins检测到你的git仓库更新之后就直接运行了;然后你要是配置错了想重新配置一下这个自动化任务,那你就点击那个configure就好了,修改完记得保存!

800049ddca2047549e91a43ddc184360.png

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/61834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

合规性要求对漏洞管理策略的影响

讨论漏洞管理中持续面临的挑战,包括确定漏洞的优先级和解决修补延迟问题。 介绍合规性要求以及自动化如何简化漏洞管理流程。 您认为为什么尽管技术不断进步,但优先考虑漏洞和修补延迟等挑战仍然存在? 企业基础设施日益复杂,攻…

挑战用React封装100个组件【004】

项目地址 https://github.com/hismeyy/react-component-100 组件描述 组件适用于展示图片的地方,提供了small,medium,large三种大小。可以删除图片,也可以全屏预览图片。 样式展示 前置依赖 今天我们的这个挑战需要用用到了…

python通过ODBC连接神通数据库

1、安装神通数据库 2、安装python 3、安装pyodbc pip3 install pyodbc-5.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 注:pyodbc要和python版本相对应 4、安装unixodbc 5、配置神通数据库ODBC数据源 6、示例代码如下 #!/usr/bin/python…

【阅读记录-章节5】Build a Large Language Model (From Scratch)

目录 5. Pretraining on unlabeled data5.1 Evaluating generative text models5.1.1 Evaluating generative text models5.1.2 Calculating the text generation loss评估模型生成文本的质量 5.1.3 Calculating the training and validation set losses 5.2 Training an LLM5.…

Ubuntu Linux操作系统

一、 安装和搭建 Thank you for downloading Ubuntu Desktop | Ubuntu (这里我们只提供一个下载地址,详细的下载安装可以参考其他博客) 二、ubuntu的用户使用 2.1 常规用户登陆方式 在系统root用户是无法直接登录的,因为root用户的权限过…

git查看本地库对应的远端库的地址

git查看本地库对应的远端库的地址 git remote -v 如果想要查看特定的远端库的url地址,可以使用如下命令,其中origin是默认的远端库的名称,可以使用其他远端库的名称 get remote get-url origin

C# yield 关键字

文章目录 前言一、yield 关键字的语法形式及使用场景(一)yield return(二)yield break 二、yield 关键字的工作原理三、yield 关键字的优势与应用场景(一)优势(二)应用场景 前言 在 …

QT6学习第八天 QFrame 类

QT6学习第八天 QFrame 类族QLabel 标签部件按钮部件QLineEdit 行编辑器部件QAbstractSpinBoxQAbstractSlider 今天来学一学 QFrame 类。 QFrame 类族 QFrame 类是带有边框的部件的基类。它的子类包括常用的标签部件 QLabel、以及 QLCDNumber、QSplitter、QStackedWidget、QToo…

【2024 re:Invent现场session参加报告】打造生成式AI驱动的车间智能助手

前言 这次参加了 re:Invent 2024 的 Builders Session 「Building a generative AI–powered shop floor assistant」,在这里和大家分享一下内容! Session 概要 Learn how to build a generative AI assistant to analyze data from industrial IoT se…

【C++】数组

1.概述 所谓数组,就是一个集合,该集合里面存放了相同类型的数据元素。 数组特点: (1)数组中的每个数据元素都是相同的数据类型。 (2)数组是有连续的内存空间组成的。 2、一维数组 2.1维数组定…

[VUE]框架网页开发02-如何打包Vue.js框架网页并在服务器中通过Tomcat启动

在现代Web开发中,Vue.js已经成为前端开发的热门选择之一。然而,将Vue.js项目打包并部署到生产环境可能会让一些开发者感到困惑。本文将详细介绍如何将Vue.js项目打包,并通过Tomcat服务器启动运行。 1. 准备工作 确保你的项目能够正常运行,项…

ESP32-S3模组上跑通ES8388(13)

接前一篇文章:ESP32-S3模组上跑通ES8388(12) 二、利用ESP-ADF操作ES8388 2. 详细解析 上一回解析了es8388_init函数中的第6段代码,本回继续往下解析。为了便于理解和回顾,再次贴出es8388_init函数源码,在…

openEuler 22.03 使用cephadm安装部署ceph集群

目录 目的步骤规格步骤ceph部署前准备工作安装部署ceph集群ceph集群添加node与osdceph集群一些操作组件服务操作集群进程操作 目的 使用ceph官网的cephadm无法正常安装,会报错ERROR: Distro openeuler version 22.03 not supported 在openEuler上实现以cephadm安装部…

DevOps工程技术价值流:GitLab源码管理与提交流水线实践

在当今快速迭代的软件开发环境中,DevOps(开发运维一体化)已经成为提升软件交付效率和质量的关键。而GitLab,作为一个全面的开源DevOps平台,不仅提供了强大的版本控制功能,还集成了持续集成/持续交付(CI/CD)…

Spring 邮件发送

Spring 邮件发送 1. 主要内容(了解) 2. JavaMail 概述(了解) JavaMail,顾名思义,提供给开发者处理电⼦邮件相关的编程接⼝。JavaMail 是由 Sun 定义的⼀套收发电⼦邮件的 API,它可以⽅便地执⾏⼀…

VSCode如何关闭Vite项目本地自启动

某些情况下VSCode打开Vite项目不需要自动启动,那么如何关闭该功能 文件>首选项>设置 搜索vite 将Vite:Auto Start 勾选取消即可

一种多功能调试工具设计方案开源

一种多功能调试工具设计方案开源 设计初衷设计方案具体实现HUB芯片采用沁恒微CH339W。TF卡功能网口功能SPI功能IIC功能JTAG功能下行USB接口 安路FPGA烧录器功能Xilinx FPGA烧录器功能Jlink OB功能串口功能RS232串口RS485和RS422串口自适应接口 CAN功能烧录器功能 目前进度后续计…

Spark和MapReduce场景应用和区别

文章目录 Spark和MapReduce场景应用和区别一、引言二、MapReduce和Spark的应用场景1. MapReduce的应用场景2. Spark的应用场景 三、MapReduce和Spark的区别1. 内存使用和性能2. 编程模型和易用性3. 实时计算支持 四、使用示例1. MapReduce代码示例2. Spark代码示例 五、总结 Sp…

Python办公——openpyxl处理Excel每个sheet每行 修改为软雅黑9号剧中+边框线

目录 专栏导读背景1、库的介绍①:openpyxl 2、库的安装3、核心代码4、完整代码5、最快的方法(50万行44秒)——表头其余单元格都修改样式总结 专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍…

【C#】书籍信息的添加、修改、查询、删除

文章目录 一、简介二、程序功能2.1 Book类属性:方法: 2.2 Program 类 三、方法:四、用户界面流程:五、程序代码六、运行效果 一、简介 简单的C#控制台应用程序,用于管理书籍信息。这个程序将允许用户添加、编辑、查看…