多测师肖sir_高级金牌讲师_jenkins搭建
jenkins操作手册
===================================================================
一、jenkins介绍
1、持续集成(CI) Continuous integration 持续集成 团队开发成员每天都有集成他们的工作,通过每个成员每天至少集成一次,也就意味着一天有可 能多次集成。在工作中我们引入持续集成,通过持续集成自动构建(代码的编译、发布、部署、 用例的更新和自动化执行),从而达到尽早发现代码集成的错误。
2、在没有持续集成时,开发的模式是:
第一步:项目一开始划分模块,将模块分配给对应的开发
第二步:开发对自己所负责的模块进行开发以及对应后期的单元测试
第三步:等所有模块开发完成后,由项目老大(开发负责人)对所有模块的代码进行集成
第四步:将集成好的代码部署到环境上,交由测试人员进行集成测试
第五步:测试过程中发现bug,测试人员提交bug并进行记录
第六步:对应的开发人员进行bug修复
第七步:等所有开发人员将bug修复好,再进行代码集成,交给测试进行回归测试 这样我们会陷入一个循环:修改bug集成代码部署测试的循环中
缺陷: a.bug永远都是在最后才发现,不能及时发现。 b.这样的话测试效率低,使得交付效率质量差。
3、用Jenkins做持续集成的目的:及时发现bug,提高效率
4、持续集成的优点:
(1)、统一的代码库
(2)、自动部署和构建
(3)、自动测试
(4)、保证项目的交付质量
5、用什么实现持续集成? 使用Jenkins工具能帮我们实现持续集成
6、什么是Jenkins?
是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
7、Jenkins有哪些功能 1
1)持续的软件版本发布/测试项目。
2)监控外部调用执行的工作。
8、 Jenkins拥有的特性包括:
1)易于安装只要把jenkins.war部署到servlet容器,不需要数据库支持。
2)易于配置所有配置都是通过其提供的web界面实现。
3)集成RSS/Email通过RSS发布构建结果或当构建完成时通过email通知。
4)生成JUnit/TestNG测试报告。
5)分布式构建支持Jenkins能够让多台计算机一起构建/测试。
6)文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
7)插件支持:支持扩展插件,你可以开发适合自己团队使用的工具。
8)Jenkins的主要目标是监控软件开发流程,快速显示问题。所以能保证开发人员以及相关人员省时省力提高开发效率。
9、Jenkins中的节点?
一个节点是一个代理服务器。建议使用字母、数字或字母和数字的组合。
最好见名知意。不建议 使用标点符号和中文(中文命名没有问题,但Job中无法引用)
==================================================================
二、Jenkins环境搭建
一、需要的应用软件如下:
JDK1.8 最好安装1.8的:
查看jdk是否安装好

以上是安装成功:
如果没有安装就要上传jdk

安装jdk

三、linux环境上搭建jenkins
1、服务器tomcat

2、解压服务器
命令:
tar -zxvf apache-tomcat-7.0.56.tar.gz

查看tomcat是否可以运行:
在bin目录下启动

出现tomcat猫界面:表示ok
http://192.168.157.134:8080/

删除tomcat的包,把本地jenkins.war包存放到tomcat路径下apachetomcat7.0.56/webapps



解压war包(解压前停止服务),要通过启动服务器,在启动服务

第二步:启动tomcat,启动后jenkins.war包会自动解压,生成一个jenkins目录

第三步:浏览器地址栏中输入IP地址+8080端 口/jenkins(http://192.168.157.134:8080/jenkins),正常打开jenkins应用页面 如果页面报错要关闭防火墙:service iptables stop 或 systemctl stop firewalld.service
页面显示如下:

这段话翻译过后大概的意思就是:
Jenkins管理员密码已经写入服务器/root/.jenkins/secrets/initialAdminPassword 文件中, 复制密码粘贴到下面的文本框中。
讲解下:/root 路径就是 cd ~
cat /root/.jenkins/secrets/initialAdminPassword

密码: 41ec6d8ca3d04ec9a6b8c9d1b4b1d580
第四步:在linux环境中输入命令: cat /root/.jenkins/secrets/initialAdminPassword ,复 制密码 到文本框中,点击continue
复制:密码:41ec6d8ca3d04ec9a6b8c9d1b4b1d580

密码:06429cea95184f06815afe908114aaed
以上是登录密码;

第五步:点击安装建议性插件

左边 建议安装 ,右边 自定义安装
接下来会安装所有建议性插件,这个安装时间有些长,请耐心等待

第六步:输入以后登录jenkins的用户名,密码>然后点击保存并完成

最后,当你看到这个页面,说明jenkins已经安装好了


==============================================
第七步:Jenkins修改密码
方法(1):
1.点击页面右上角用户名
2.点击设置
3、输入修改密码
4.修改密码,点击应用,保存。
账号:admin
修改密码为:123456

4.重启jenkins
在浏览器地址中输入:http://192.168.153.131:8080/jenkins/restart 地址以自己的IP地 址为准
(添加restart)jenkins重启
重启后,可以用新密码登录。
账号:admin
修改密码为:123456
第八步:如果出现其他异常需要重新安装jenkins环境的步骤如下:(如果Jenkins启动正常请忽 略以下操作)
第一步:rm rf /root/.jenkins 清空所有数据
第二步:webapps中删除Jenkins目录 重启tomcat
第三步:一切按照上面的步骤操作
注意点:依赖包出错不用管
===================================================================
四、jenkins添加节点 第一步:首页点击系统管理——》管理节点——》新建节点
(注意点:(先设置全局安全配置))



第二步:输入节点名称,勾选固定代理

第三步:输入节点的具体信息,这里需要注意的是启动方法,启动方法没有java web请往下看

配置好后的节点如下

在配置中安全设置中:选择代理,随机选取,在保存


出现如下的信息:说明代理服务器没有连接jenkins
节点可以理解为一个代理,一台服务器。Jenkins是一个ci(持续集成)平台,每个代理 服务器
要与jenkins进行集成,需要执行java jar ,后面是代理服务器Ip地址,通过这条 命令,执行成功说明代理已集成在ci平台
将代理连接jenkins方法: 从代理命令行运行
第一步:下载agent.jar文件 ,保存在本地:D:\cd\jek\agent.jar

第二步:在dos中D:\cd\jek\目录下执行命令

注意:把节点中的路径的复制到dos下执行
路径:java -jar agent.jar -jnlpUrl http://192.168.157.134:8080/jenkins/computer/dcs35/jenkins-agent.jnlp -secret 0c0d947aaaac81aacb6af01cb6bd312b2bc15bf74caf04efbe48c8358de140f4 -workDir “D:\cd\jek”
这里需要注意的是:根据自己的jenkins页面内容copy,再执行

执行之后,看到Agent discovery successful 和connected 说明代理连接jenkins成功

成功jenkins首页显示,代理电脑右下方红色叉叉消失,并且显示代理服务器详细信息
以上表示节点已经配好;
==============================================================
构建项目:
五、Jenkins构建项目:
第一步:首页,点击开始创建一个新任务输入一个项目名称,选择构建一个自由风格的软件项 目,最后确定

hzdcs_test

第二步:输入项目具体配置
项目名称:自定义
限制可以运行该项目的位置:输入标签,标签为代理的标签(指定项目在哪个代理机上执行)
3.构建:点击增加构建步骤 ,选择执行windows批处理命令
python+绝对路径, 在保存

5,然后点击立即构建>构建完成之后点击#2>点击控制台输出就可以看到相关的 日志了


6.构建触发器(设置定时任务) Build periodically 在日程表中设置

触发器是用于控制自动化测试执行时间的 日程表里有5个数字,分别为:
格式:H/* ****
H * * * *
第一个* 表示: 分钟:0—59
第二个** 表示: 小时:0–23
第三个* 表示 日:1—31
第四个* 表示 月:1—12
第五个* 表示 周:0–7 0和7都代表星期天
H 表示随机
- 表示所有
-表示连续
/ 表示间隔
, 表示和
M-N 指定一个范围值
例如:
案例1:

2、每隔2小时构建一次
H H/2 * * *
3.每天晚上8点定时构建
H 20 * * *
4. 每三天执行一次
H H H/3 * *
5. 每三天执行一次(每个月1-10日)
H H (1-10)/3 * *
6.每周内 2,4,6 要执行一次
H H * * 2,4,6
7.每小时 在前半个小时的每5分钟运行一次
H(0-30)/5 * * * *
==========================================
8.添加插件,以及插件的使用
robot framework plugin
Email extension template
Email ext recipients column
第一步:在首页,选择系统管理,管理插件,在过滤中输入插件名称
robot framework plugin
Email extension template
Email ext recipients column plugin
安装后如下
如果出现插件无法下载的情况,可以进行如下设置:
9.Robot framework plugin作用:通过图表查看自动化测试结果 Robot framework plugin使用 第一步:选择一个工程,点击配置
第二步:在构建构建后操作中点击 publish robot framework results
第三步:输入路径,此路径为批处理命令执行后生成xml,html后的路径(工作空间中的路径) G:\jenkins\workspace\auto_test
第四步:添加后的结果
第五步:robot framework plugin 插件作用,主要是能显示robot results,pass or Fail 以及 统计执行成功失败的比例 在安装frameworkplugin后不能选择到插件,就需要重启tomcat,或者重启jenkins 再不行就 安装一个zentimestamp.plugin
六、Jenkins设置邮件通知: 安装插件
Email Ext Recipients Column Plugin 电子邮件收件人列插件
Email Extension Plugin 电子邮件扩展插件
Email Extension Template Plugin 电子邮件扩展模板插件
第一步:在首页点击系统管理>点击系统设置>找到Jenkins Location
第二步:这里电子邮件通知,需要设置的参数如下
第三步:增加构建后操作步骤,选择email notification
第四步:收件人:输入收件人邮箱,在构建失败后,会发送邮件通知
第五步:选择可编辑的电子邮件通知,可以替换邮件的主题和内容
第六步:点击高级设置
第七步: 点击右下角的高级设置选择添加触发器,选择总是
第八步:最后收到邮件,说明你的邮件通知设置成功!
第九步:设置Jenkins的时间和电脑同步
打开 【系统管理】>【脚本命令行】运行下面的命令:
System.setProperty(‘org.apache.commons.jelly.tags.fmt.timeZone’, ‘Asia/Shanghai’)
七、Jenkins+svn实现拉取最新的代码或脚本跑定时任务:
1、打开配置、找到subversion、Local module directory里面有个点"."需要删除:
2、添加凭据:
3、把要被运行的脚本文件放入上传到svn:
4、然后再构建输入:Pybot test test2 G:\jenkins\auto\论坛项目.txt
也可以设置定位任务上面过程有讲到
5、点击构建
6、点击构建后Jenkins会自动拉取SVN服务器的代码到Jenkins的工作空间然后通过执行 Windows批处理命令就可以执行从 SVN拉取下来的最新的代码,这样就可以实时跑服务器中最新的代码或者自动化测试用例。
相关文章:
多测师肖sir_高级金牌讲师_jenkins搭建
jenkins操作手册 一、jenkins介绍 1、持续集成(CI) Continuous integration 持续集成 团队开发成员每天都有集成他们的工作,通过每个成员每天至少集成一次,也就意味着一天有可 能多次集成。在工作中我们引入持续集成,通…...
Ps:色彩范围
Ps菜单:选择/色彩范围 Select/Color Range 色彩范围 Color Range是一个功能强大选择命令,不仅可以基于颜色进行选择,而且可以基于影调进行选择。不仅可以用来检测人脸选择肤色,也可用来选择超出印刷色域范围的区域。 在图层蒙版的…...
基于SSM的宠物医院管理系统
末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…...
华为政企园区网络交换机产品集
产品类型产品型号产品说明 核心/汇聚交换机CloudEngine S5731-H24P4XCCloudEngine S5731-H24P4XC 提供 24个10/100/1000BASE-T以太网端口,4个万兆SFP,CloudEngine S5731-H 系列交换机是华为公司推出的新一代智能千兆交换机,基于华为公司统…...
NVMe FDP会被广泛使用吗?
文章开头,我们需要先了解固态硬盘的读写机制。我们知道,固态硬盘的存储单元是由闪存颗粒组成的,无法实现物理性的数据覆盖,只能擦除然后写入,重复这一过程。因而,我们可以想象得到,在实际读写过…...
[黑马程序员Pandas教程]——Pandas数据结构
目录: 学习目标认识Pandas中的数据结构和数据类型Series对象通过numpy.ndarray数组来创建通过list列表来创建使用字典或元组创建s对象在notebook中不写printSeries对象常用API布尔值列表获取Series对象中部分数据Series对象的运算DataFrame对象创建df对象DataFrame…...
AI 绘画 | Stable Diffusion 提示词
Prompts提示词简介 在Stable Diffusion中,Prompts是控制模型生成图像的关键输入参数。它们是一种文本提示,告诉模型应该生成什么样的图像。 Prompts可以是任何文本输入,包括描述图像的文本,如“一只橘色的短毛猫,坐在…...
tomcat默认最大线程数、等待队列长度、连接超时时间
tomcat默认最大线程数、等待队列长度、连接超时时间 tomcat的默认最大线程数是200,默认核心线程数(最小空闲线程数)是10。 在核心线程数满了之后,会直接启用最大线程数(和JDK线程池不一样,JDK线程池先使用工作队列再使用最大线程…...
本地部署 CogVLM
本地部署 CogVLM CogVLM 是什么CogVLM Github 地址部署 CogVLM启动 CogVLM CogVLM 是什么 CogVLM 是一个强大的开源视觉语言模型(VLM)。CogVLM-17B 拥有 100 亿视觉参数和 70 亿语言参数。 CogVLM-17B 在 10 个经典跨模态基准测试上取得了 SOTA 性能&am…...
bff层解决了什么痛点
bff层 -- 服务于前端的后端 什么是bff? Backend For Frontend(服务于前端的后端),也就是服务器设计API的时候会考虑前端的使用,并在服务端直接进行业务逻辑的处理,又称为用户体验适配器。BFF只是一种逻辑…...
面试经典150题——Day33
文章目录 一、题目二、题解 一、题目 76. Minimum Window Substring Given two strings s and t of lengths m and n respectively, return the minimum window substring of s such that every character in t (including duplicates) is included in the window. If there …...
再谈Android重要组件——Handler(Native篇)
前言 最近工作比较忙,没怎么记录东西了。Android的Handler重要性不必赘述,之前也写过几篇关于hanlder的文章了: Handler有多深?连环二十七问Android多线程:深入分析 Handler机制源码(二) And…...
Javaweb之javascript的详细解析
JavaScript html完成了架子,css做了美化,但是网页是死的,我们需要给他注入灵魂,所以接下来我们需要学习JavaScript,这门语言会让我们的页面能够和用户进行交互。 1.1 介绍 通过代码/js效果演示提供资料进行效果演示&…...
Linux常用命令——cd命令
在线Linux命令查询工具 cd 切换用户当前工作目录 补充说明 cd命令用来切换工作目录至dirname。 其中dirName表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的home directory(也就是刚login时所在的目录)。另外,~也表示为home directo…...
VHDL基础知识笔记(1)
1.实体:其电路意义相当于器件,它相当于电路原理图上的元器件符号。它给出了器件的输入输出引脚。实体又被称为模块。 2.结构体:这个部分会给出实体(或者说模块)的具体实现,指定输入和输出的行为。结构体的…...
volatile-日常使用场景
6.4 如何正确使用volatile 单一赋值可以,但是含复合运算赋值不可以(i之类的) volatile int a 10; volatile boolean flag true; 状态标志,判断业务是否结束 作为一个布尔状态标志,用于指示发生了一个重要的一次…...
策略模式在数据接收和发送场景的应用
在本篇文章中,我们介绍了策略模式,并在数据接收和发送场景中使用了策略模式。 背景 在最近项目中,需要与外部系统进行数据交互,刚开始交互的系统较为单一,刚开始设计方案时打算使用了if else 进行判断: if(…...
学习LevelDB架构的检索技术
目录 一、LevelDB介绍 二、LevelDB优化检索系统关键点分析 三、读写分离设计和内存数据管理 (一)内存数据管理 跳表代替B树 内存数据分为两块:MemTable(可读可写) Immutable MemTable(只读࿰…...
Docker Swarm实现容器的复制均衡及动态管理:详细过程版
Swarm简介 Swarm是一套较为简单的工具,用以管理Docker集群,使得Docker集群暴露给用户时相当于一个虚拟的整体。Swarm使用标准的Docker API接口作为其前端访问入口,换言之,各种形式的Docker Client(dockerclient in go, docker_py…...
Proteus仿真--1602LCD显示仿手机键盘按键字符(仿真文件+程序)
本文主要介绍基于51单片机的1602LCD显示仿手机键盘按键字符(完整仿真源文件及代码见文末链接) 仿真图如下 其中左下角12个按键模拟仿真手机键盘,使用方法同手机键一样,长按自动跳动切换键值,松手后确认选择ÿ…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
