前言

之前搭建过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自动化测试项目的更多相关文章

  1. 谁能告诉我如何通过Jenkins完成分布式环境搭建并执行自动化脚本

    ​今天我们接着昨天的内容,看一看如何完成Jenkins分布式环境的搭建和使用,因为我之前也是自己一个人摸索的,如果有不对的地方,请各位看官私信指出. 新增分布式部署节点 在系统管理/节点管理中点击新建 ...

  2. Jenkins Slave 设置

    Jenkins Slave node环境变量设置有很多trap,在最近的工作当中,我把slave部署在red hat linux 上,进行c++项目的编译部署和发布,但是在执行工程的时候,总会报出某些 ...

  3. Jenkins分布式构建与并行构建

    Jenkins分布式构建与并行构建 jenkins的架构 Jenkins采用的是"master+agent(slave)"架构.Jenkins master负责提供界面.处理HTT ...

  4. Docker+Jenkins持续集成环境(5): android构建与apk发布

    项目组除了常规的java项目,还有不少android项目,如何使用jenkins来实现自动构建呢?本文会介绍安卓项目通过jenkins构建的方法,并设计开发一个类似蒲公英的app托管平台. andro ...

  5. Docker+Jenkins持续集成环境(2)使用docker+jenkins构建nodejs前端项目

    前文使用Docker搭建Jenkins+Docker持续集成环境我们已经搭建了基于docker+jenkins的持续集成环境,并构建了基于maven的项目.这一节,我们继续扩展功能,增加对Nodejs ...

  6. Hadoop 分布式环境slave节点重启忽然不好使了

    Hadoop 分布式环境slaves节点重启: 忽然无法启动DataNode和NodeManager处理: 在master节点: vim /etc/hosts: 修改slave 节点的IP (这个时候 ...

  7. hadoop2.2分布式环境搭建

    hadoop2.2的分布式环境需要配置的参数更多.但是需要安装的系统软件和单节点环境是一样的. 运行hadoop在非安全环境 hadoop的配置文件有两类: 1:只读的默认配置文件: core-def ...

  8. Jenkins实现生产环境部署文件的回滚操作(Windows)

    由于dotnet项目的生产环境环境部署工具比较少,所以我使用jenkins作为生产环境的自动化部署工具. 既然有回滚操作,那么就会有部署操作:要实现回滚,先要实现部署的操作,我在jenkins搭建了一 ...

  9. Jenkins + Github持续集成构建Docker容器,维基百科&人工自能(AI)模块

    本文分两部分,第一部分是手动计划任务的方式构建Github上的Docker程序,第二部分是用Github webhook Trigger一个自动构建任务. Jenkins采用2.5版本Docker采用 ...

随机推荐

  1. 安装Cloudera Impala

    安装Cloudera Impala Cloudera Impala是Cloudera Enterprise Core的开源扩展,用于快速返回查询结果. Impala作为你环境的插件,与其他组件的安装独 ...

  2. shell把文件批量导入mysql

    for file in ./tmp_data/* do echo $file mysql -u'root' -p'wangbin' --default-character-set=utf8 -e&qu ...

  3. Spring Boot:整合Spring Data JPA

    综合概述 JPA是Java Persistence API的简称,是一套Sun官方提出的Java持久化规范.其设计目标主要是为了简化现有的持久化开发工作和整合ORM技术,它为Java开发人员提供了一种 ...

  4. Spring Cloud Config 使用SVN 和 git方式的相关配置

    文件的存储方式: 1.使用svn 当做配置中心 config server的配置方式: 引入svn的包 <dependency> <groupId>org.tmatesoft. ...

  5. Spark学习之路(七)—— 基于ZooKeeper搭建Spark高可用集群

    一.集群规划 这里搭建一个3节点的Spark集群,其中三台主机上均部署Worker服务.同时为了保证高可用,除了在hadoop001上部署主Master服务外,还在hadoop002和hadoop00 ...

  6. Jenkins的安装与使用(一)

    jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,就是各种项目的"自动化"编译.打包.分发部署.jenkins可以很好的支持各种语言(比如:java, ...

  7. java与WebService对接案例--生成代码方法

    前端时间出差做项目,因为我们给对三方工厂做Mes项目,其中有一个报工环节,需要我们的Mes中将产品提交到他们的U9(Erp)上,但是由于u9是用友的产品,用c#写的,而我是用java写的,那么WebS ...

  8. 常用的方法论-AAR

  9. 自动化冒烟测试 Unittest , Pytest 哪家强?

    前言:之前有一段时间一直用 Python Uittest做自动化测试,觉得Uittest组织冒烟用例比较繁琐,后来康哥提示我使用pytest.mark来组织冒烟用例 本文讲述以下几个内容: 1.Uni ...

  10. 配置Windows server 用户和组权限实验详解

    目录 操作步骤如下: 在Windows Server开始菜单下点击管理工具下的计算机管理 新建用户 用户创建完毕 新建文件夹 配置技术部读取"技术资料"和"常用软件&qu ...