【今天放个大招,带你手把手搭建 Jenkins 的分布式构建】

news2024/11/23 11:56:50

UI 自动化测试代码写完了以后,会放到 Jenkins 这样的持续集成工具上去构建。

如果 Jenkins 平台是搭建在服务器上,会面临 2 个问题:

第一个问题是 UI 自动化测试需要渲染界面,需要消耗大量的 CPU 和内存资源,如果服务器上还有其他的服务,可能会造成卡顿或者宕机这样的情况。

第二个问题是 Jenkins 平台上除了这个项目,还会有其他项目需要构建,如果同一时间构建大量的任务同样会造成多个任务抢占资源的情况。

Jenkins 提供了主从模式(master-slave) 解决这个问题。

前言

图片

                                                     在服务器的 Jenkins 上配置项目

图片

提交代码

首先,把自动化测试的代码传到 GitHub 这样的平台上。

把本地代码执行以下操作:

git add .git commit -m "提交自动化测试"git push

在 GitHub 上可以看到项目代码更新了,复制 GitHub 仓库链接地址。

图片

创建 Jenkins 项目

输入 jenkins 服务的 URL 地址,进入 Jenkins 页面。

比如你们公司的 Jenkins 为 http://118.23.238.138:8080/。先点击 Manage Jenkins --> Manage Plugin 安装 Git 插件。

图片

安装成功以后,进入 Jenkins 面板,点击 New Item 创建一个项目:

图片

在 Item 的配置里选择 Git 管理源码。如果之前没有安装 Git 插件,这里不会有 Git 选项。

填入自动化代码的仓库地址,用户名密码和关联分支。第一次没有在 jenkins 里配置账号的可以点击 add 添加。

图片

添加构建步骤

点击 add build step, 选择执行脚本的方式,windows 和 unix 系是不一样的。这里一定要注意,是运行任务的机器,这不是由服务器的系统决定的。 

配置好了以后,点击立即构建,此时构建操作应该会报错,因为你的服务器还没有安装执行脚本需要的环境,比如浏览器,python 语言环境,selenium 环境等等。

如果你需要服务器运行脚本,这些环境是必须要装的。但是如果是使用主从模式,只需要客户机安装好环境就可以了。

图片

添加客户机节点(Node)

在服务器上注册你需要运行脚本的客户机的名称,点击 manage jenkins -> manage node and cloud -> New Node 配置新节点。

图片

需要注意 Launch method 一定要开启 jenkins 的远程连接端口,否则客户机无法连接上服务器。

这种连接用的是 JNLP4 协议, 这种协议是在 WebSocket + TLS 的基础上封装而成的长连接协议。可以在 jenkins 的安全设置面板中开启。

图片

5 连接客户机

在 Node 管理界面点击刚刚添加的客户机,会介绍两种连接方式,直接按提示操作就可以了。

之后客户机和服务器就是通过这种方式传递数据。服务器不需要安装运行脚本需要的环境,这些环境都由客户机提供并执行。客户机并不需要安装 jenkin。

图片

6 正常构建

连接成功以后就可以正常构建啦。

图片

查看测试报告:

图片

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

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

相关文章

埃隆·马斯克的 AI 聊天机器人 Grok 已经上线

昨天,埃隆马斯克 (Elon Musk) 通过他的公司 xAI 推出了一款名为 Grok 的新型人工智能聊天机器人。这款新的聊天机器人将通过 Twitter 更新实时获取世界知识,使其成为最新的对话 AI 系统。 Grok 的独特和基本优势在于它可以通过 𝕏 平台实时了…

如何在 Vue.js 中引入原子设计?

前言 原子设计是一种创建设计系统的方法,它将用户界面分解为可重用的小组件,即: Atoms 原子Molecules 分子Organisms 生物体Templates 模板Pages 页面 通过遵循模块化设计方法,原子设计可帮助团队创建一致、可缩放且可维护的 …

10-27 maven概念

maven maven的概念模型: 项目对象模型(POM: Project object Model),一组标准集合: pom.xml 依赖管理系统(Dependency Management System) 项目生命周期(Project Lifecycle) 项目对象模型: 把项目当成一个对象,描述这个项目,使用p…

[CISCN 2023 初赛]go_session

文章目录 考点代码审计main.goroute.goIndex函数Admin函数Flask函数 解题过程伪造session获取server.py构造payload覆盖server.py命令执行 考点 session伪造,pongo2模板注入,debug模式覆盖源文件 代码审计 main.go package mainimport ("github.c…

解决:ImportError: cannot import name ‘get_config‘

解决:ImportError: cannot import name ‘get_config’ 背景 今天使用Conda构建项目运行环境的时候报错:ImportError: cannot import name ‘get_config’ ##报错问题 from keras.callbacks import LearningRateScheduler, ModelCheckpointFile "D…

计算机毕设 基于大数据的高校校园学生一卡通数据分析

文章目录 0 项目简介任务 1数据导入与预处理任务 1.1 探查数据质量并进行缺失值和异常值处理1.1.2检查重复值1.1.3数据内容总览1.1.4数据分布总览1.1.5消费金额和消费次数观察消费金额和消费次数的散点图1.1.6观察 CardCount 特征的分布情况 任务2 食堂就餐行为分析任务 2.2 食…

1.IntelliJ-IDEA修改CobaltStrike

IntelliJ-IDEA修改CobaltStrike 前期准备一、创建一个新项目二、创建一个lib目录三、重构代码四、运行效果 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均…

奔驰E Coupe 升级鼠标按键 操作简单 完美结合

人机交互系统正是汽车智能化发展的产物,它实现了人与车之间的互联。不知道大家有没有发现,在很多奔驰车的中央扶手箱前,有一块类似于“鼠标”的操作区,它并不是我们常见的换挡杆,而是奔驰研发的独立影音控制系统COMAND…

监控actuator配置以及踩坑记录

以前这个监控都是领导去加,我顶多去修改一些时间参数,让我自己加还是头一次 正经踩了不少坑啊 1.依赖引入 先说配置过程 不对 先说我们项目结构 我们有一个common项目,作为一个公共项目。各种项目公用的依赖,都配置在common中…

Cassandra介绍(二)

1.8. 数据 存储 ( CommitLog、MemTable、SSTable ) 写请求分别到 CommitLog 和 MemTable, 并且 MemTable 的数据会刷写到磁盘 SSTable 上. 除 了写数据,还有索引也会保存到磁盘上. 先将数据写到磁盘中的 commitlog,同时追加到中内存中的数据…

物理机安装CentOS7

准备阶段 一个需要安装版本的iso镜像文件一个U盘一台物理机一台有windos系统的电脑 制作启动盘 下载UltraISO (收费 搜一搜可以解决) 写入硬盘映像 先格式化,选择usb-hdd v2 写入 可能会卡 耐心等待 安装系统 插入u盘 进入 启动项选择页…

python使用selenium做自动化,最新版Chrome与chromedriver不兼容

目前Chrome版本是118.0.5993.118 下方是版本对应的下载地址: chrome版本118: https://download.csdn.net/download/qq_35845339/88510476 chrome版本119: chromedriverlinux64https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testin…

台式电脑一键重装Win10系统详细教程

很多用户都在使用台式Win10电脑办公,如果电脑出现系统问题无法解决了,这时候就可以考虑给电脑重装系统哦,下面小编给大家详细介绍关于台式电脑一键重装Win10系统的步骤方法,安装后电脑就能恢复正常,也不会影响到用户的…

新生儿长牙期:原因、科普和注意事项

引言: 新生儿长牙期是新父母关心的话题之一,因为它标志着婴儿开始生长乳牙。尽管这个过程在每个婴儿身上都会发生,但它可能引起不适和不安。本文将科普新生儿长牙的原因,提供相关信息,并为父母和监护人提供注意事项&a…

lazarus:数据集快速导出为excel、csv、sql及其他多种格式

lazarus被成为快速开发工具,为什么说“快速”,重要的一点是,很多工具是现成的,可以拿来直接就用。比如数据导出,如果需要把数据集导出为excel格式文件,写代码可能需要很多时间。lazarus就不用了&#xff0c…

Python学习笔记--类的访问控制

九、类的访问控制 1、类属性的访问控制 在 Java 中,有 public (公共)属性 和 private (私有)属性,这可以对属性进行访问控制。 那么在 Python 中有没有属性的访问控制呢? 一般情况下&#x…

基于SSM的大学学生成长系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

5+单基因泛癌范文式教学,适合小白学习

今天给同学们分享一篇生信文章“Comprehensive Pan-Cancer Analysis of KIF18A as a Marker for Prognosis and Immunity”,这篇文章发表在Biomolecules期刊上,影响因子为5.5。 结果解读: KIF18A的表达及其在泛癌中的诊断价值 TIMER数据库被…

操作系统:虚拟存储管理技术

文章目录 虚拟存储管理技术一、实验目的二、实验要求与内容、过程与结果 系列文章 虚拟存储管理技术 一、实验目的 存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。 本实验的目的是通过请求页式存储管理中页面置换算法模拟设计&#xf…

wpf Grid布局详解 `Auto` 和 `*` 是两种常见的设置方式 行或列占多个单元格,有点像excel里的合并单元格。使其余的列平均分配剩余的空间

比如只有行的界面 <Window x:Class"GenerateTokenApp.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/exp…