Jenkins-slave分布式环境构建与并行WebUi自动化测试项目
前言
之前搭建过selenium grid的分布式环境,今天我们再来搭建一次Jenkins的分布式环境:jenkins-slave
Jenkins的Master-Slave分布式架构主要是为了解决Jenkins单点构建任务多、负载较高、性能不足的场景。Master-Slave相当于Server和Agent的概念。Master提供web接口让用户
来管理job和Slave,job可以运行在Master本机或者被分配到Slave上运行构建。一个Master(Jenkins服务所在机器)可以关联多个Slave用来为不同的job或相同的job的不同配置来
服务,现在我们开始配置Jenkins-slave
配置前准备
为了模拟真实的Jenkins环境,我采用了两台实体电脑,192.168.1.101作为Jenkins服务器,并已经安装好了Jenkins和java环境(如何安装,点击此处), 192.168.1.103作为slave机也就是node节点,并安装好Java环境,同时要保证两台机器处于同一个网段,相互能够ping通,到此为止前期的环境准备就已经完成了
新建节点
登录Jenkins服务器-点击Jenkins配置-选择Manage Nodes(节点配置)-点击New Node(新建节点)-点击ok
配置节点
注意:如果你没有配置过任何节点,那么启动方式是没有我选择的选项的(后面会讲启动方式的配置),你只需要先随意选择一个保存即可
配置完所有的节点信息之后保存,会看到如下界面,我们可以点击节点机器进去看一下[点击window10]
里面显示是这样的(你的机器看到的就是这样的,因为启动方式你并没有配置),明显这里是断开链接的状态,是无法使用的, 你先别管为什么,进入下面的设置
配置启动方式
启动方式的配置(配置上一个步骤中的启动方式选项,让我们需要的启动方式能够选择)
返回Jenkins主目录-点击Manage Jenkins-选择Configure Global Security(全局安全配置)
接下来勾选如下选项
全部勾选,或只勾选第3项即可(jave web的启动方式),当然不同版本的jenkins这里显示的貌似也不太一样,但是作用是一样的,也许你的是如下页面这样的
保存全局安全配置,(这一步完成之后你需要重新到节点配置里面把启动方式修改一下,修成成我图中的方式)之后再次保存节点的配置,接下来查看节点,你会看到如下显示
启动节点服务器
启动节点服务器,目的是使节点服务器与Jenkins主机建立链接,有两种方式启动
1. 你可以点直接点击Launch,然后根据提示,会执行下载slave-agent.jnlp文件,下载完成后,把此文件上传到作为节点的机器(192.168.1.103)的远程工作目录中(配置节点时的远程工作目录)
2. 点击上图中的agent.jar链接,下载此文件,下载完成后此文件传到作为节点的机器(192.168.1.103)的远程工作目录中(配置节点时的远程工作目录),在此目录下执行cmd命令
java -jar agent.jar -jnlpUrl http://192.168.1.102:8080/computer/window10/slave-agent.jnlp -secret 3217c15e66f1fbbe597775fcd0513b895ccf02c3e7fc3e6b3d2a53d487e7bac4 -workDir "D:\Program Files (x86)\Jenkins"
注意其中的地址,地址中的ip是代理自动生成的Jenkins服务器代理地址,我们在执行命令时,需要把这个地址改为真实的Jenkins服务器地址192.168.1.101
以上两种方式任选其一,我这里选择执行cmd命令(注意命令是在节点主机上执行的),执行结果如下
再次查看Jenkins主机上的几点状态
构建配置
接下来配置一下Job,测试一下项目在节点主机上是否能够成功构建并执行
新建项目
配置Geeral
注意这里的标签名,输入后会自动识别之前节点的标签
添加构建步骤
这里我选择的是执行windows批处理命令,这里有个坑
python解释器的完整目录需要是节点主机上安装的解释器路径,当然如果你的解释器配置了环境变量,也可以省去完整路径
ok,我们保存配置,我只做了简单的配置,没有其他功能,如果你想配置发送邮件,拉取git库的代码执行等其他功能,你可以参考我之前的文章
执行构建
接下来我们手动执行一下构建,因为这个项目是第一次配置的,所以需要手动执行一次构建,为了生成项目的工作空间
当手动执行完构建之后,你会在节点主机的远程项目目录下发现生成了一个workspace文件夹且里面包含了以项目名称为PytestUiAutoTest的文件夹
下一步,我们手动把项目的原代码复制到此目录下,然后再次执行构建
查看结果
Jenkins服务器控制台日志
通过控制台日志可以看到,执行任务的机器是我们配置的节点服务器执行的
最后
整个环境的配置到这里已经全部搭建完成,再次声明需要注意的几点
1. 配置节点时的远程工作目录可以是节点服务器上的任意目录
2. 启动节点时的cmd命令中的ip地址一定是Jenkins服务器的真实地址,因为换成代理的虚拟地址时,节点服务器链接不上Jenkins服务器(当然你也可以试试使用代理地址,我是没成功)
3. 执行脚本的批处理命令中的python解释器的路径需要是节点服务器中安装的pyhon解释器的路径(并不是Jenkins所在服务器的解释器路径)
4. 这点也是最重要的一点,前面所有配置的前提是你的Jenkins主机和节点主机已经配置了Java环境
Jenkins-slave分布式环境构建与并行WebUi自动化测试项目的更多相关文章
- 谁能告诉我如何通过Jenkins完成分布式环境搭建并执行自动化脚本
今天我们接着昨天的内容,看一看如何完成Jenkins分布式环境的搭建和使用,因为我之前也是自己一个人摸索的,如果有不对的地方,请各位看官私信指出. 新增分布式部署节点 在系统管理/节点管理中点击新建 ...
- Jenkins Slave 设置
Jenkins Slave node环境变量设置有很多trap,在最近的工作当中,我把slave部署在red hat linux 上,进行c++项目的编译部署和发布,但是在执行工程的时候,总会报出某些 ...
- Jenkins分布式构建与并行构建
Jenkins分布式构建与并行构建 jenkins的架构 Jenkins采用的是"master+agent(slave)"架构.Jenkins master负责提供界面.处理HTT ...
- Docker+Jenkins持续集成环境(5): android构建与apk发布
项目组除了常规的java项目,还有不少android项目,如何使用jenkins来实现自动构建呢?本文会介绍安卓项目通过jenkins构建的方法,并设计开发一个类似蒲公英的app托管平台. andro ...
- Docker+Jenkins持续集成环境(2)使用docker+jenkins构建nodejs前端项目
前文使用Docker搭建Jenkins+Docker持续集成环境我们已经搭建了基于docker+jenkins的持续集成环境,并构建了基于maven的项目.这一节,我们继续扩展功能,增加对Nodejs ...
- Hadoop 分布式环境slave节点重启忽然不好使了
Hadoop 分布式环境slaves节点重启: 忽然无法启动DataNode和NodeManager处理: 在master节点: vim /etc/hosts: 修改slave 节点的IP (这个时候 ...
- hadoop2.2分布式环境搭建
hadoop2.2的分布式环境需要配置的参数更多.但是需要安装的系统软件和单节点环境是一样的. 运行hadoop在非安全环境 hadoop的配置文件有两类: 1:只读的默认配置文件: core-def ...
- Jenkins实现生产环境部署文件的回滚操作(Windows)
由于dotnet项目的生产环境环境部署工具比较少,所以我使用jenkins作为生产环境的自动化部署工具. 既然有回滚操作,那么就会有部署操作:要实现回滚,先要实现部署的操作,我在jenkins搭建了一 ...
- Jenkins + Github持续集成构建Docker容器,维基百科&人工自能(AI)模块
本文分两部分,第一部分是手动计划任务的方式构建Github上的Docker程序,第二部分是用Github webhook Trigger一个自动构建任务. Jenkins采用2.5版本Docker采用 ...
随机推荐
- 测试链接服务器sql 语句
sp_addlinkedsrvlogin 创建或更新本地 Microsoft® SQL Server™ 实例上的登录与链接服务器上远程登录之间的映射. 语法 sp_addlinkedsrvlogin ...
- Spring_two
Spring_two 基于注解的IOC配置 准备工作(参考上一篇) ); 接口的实现类AccountDaoImpl.java修改 /** * 账户的持久层实现类 */ @Repository(&quo ...
- VMware安装linux系统
- Java虚拟机详解(二)------运行时内存结构
首先通过一张图了解 Java程序的执行流程: 我们编写好的Java源代码程序,通过Java编译器javac编译成Java虚拟机识别的class文件(字节码文件),然后由 JVM 中的类加载器加载编译生 ...
- Vue技术点整理 vue-devtools
注:默认浏览器调试工具,在调试vue的页面时,是不能看到vue项目的属性状态值的,所以最好是在浏览器上安装 vue-devtools,这样就可以在浏览器里面审查和调试vue的应用了 1,Chrome浏 ...
- django基础知识之布署:
布署 从uwsgi.nginx.静态文件三个方面处理 服务器介绍 服务器:私有服务器.公有服务器 私有服务器:公司自己购买.自己维护,只布署自己的应用,可供公司内部或外网访问 公有服务器:集成好运营环 ...
- 关于ffmpeg /iis 8.5 服务器下,视频截取第一帧参数配置
ffmpeg 视频截取第一帧参数配置: 网站找了很多资料,但是都不能满足要求,然后自己写下解决过程. 首先看自己PHP 版本,安全选项里面 php5.4 跟php5.6 是不一样的.去除里面的sys ...
- [Python学习]错误篇一
REFERENCE:<Head First Python> ID:我的第一篇[Python学习] BIRTHDAY:2019.7.6 EXPERIENCE_SHARING:两个程序错误类型 ...
- Xilinx ISE如何调用Modelsim进行联合仿真
图: 在对设计的芯片进行测试时,经常要用到FPGA,可是里面的仿真工具却不如Modelsim那么好用,且在规模比较大时,ISE在仿真时,软件经常会报告内存限制的问题,此时一般会切换到Modelsim软 ...
- asp.net core 系列之Configuration
在ASP.NET Core中的App configuration 是通过configuration providers基于key-value对建立的.Configuration providers读取 ...