当前位置: 首页 > news >正文

多测师肖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/E­mail通过RSS发布构建结果或当构建完成时通过e­mail通知。
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路径下apache­tomcat­7.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

第二步:这里电子邮件通知,需要设置的参数如下

第三步:增加构建后操作步骤,选择e­mail 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(只读&#xff0…...

Docker Swarm实现容器的复制均衡及动态管理:详细过程版

Swarm简介 Swarm是一套较为简单的工具,用以管理Docker集群,使得Docker集群暴露给用户时相当于一个虚拟的整体。Swarm使用标准的Docker API接口作为其前端访问入口,换言之,各种形式的Docker Client(dockerclient in go, docker_py…...

Proteus仿真--1602LCD显示仿手机键盘按键字符(仿真文件+程序)

本文主要介绍基于51单片机的1602LCD显示仿手机键盘按键字符(完整仿真源文件及代码见文末链接) 仿真图如下 其中左下角12个按键模拟仿真手机键盘,使用方法同手机键一样,长按自动跳动切换键值,松手后确认选择&#xff…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...

Python Einops库:深度学习中的张量操作革命

Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解

进来是需要留言的&#xff0c;先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码&#xff0c;输入的<>当成字符串处理回显到页面中&#xff0c;看来只是把用户输…...

在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例

目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码&#xff1a;冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...

在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7

在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤&#xff1a; 第一步&#xff1a; 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为&#xff1a; // 改为 v…...