一文教会你Jenkins 主从模式实现分布式自动化测试
创始人
2025-06-01 19:31:00
0

目录

背景

添加Slave节点

连接Slave节点

Jenkins任务配置Slave节点执行

可能碰到的问题


背景

日常构建Jenkins任务中,会经常出现下面的情况:

(1)自动化测试执行需要消耗大量的 CPU 和内存资源,如果服务器上还有其他的服务,可能会造成卡顿或者宕机这样的情况;

(2)Web自动化测试代码需要在不同浏览器上面执行(兼容性测试),或者自动化测试代码比较多,执行速度非常缓慢。

Jenkins 提供了主从模式(Master/Slave) 解决这个问题。Master/Slave相当于Server与Agent。通过Master我们可以关联多个Slave从机来为不同的任务或相同的任务的不同配置服务。

默认我们使用Jenkins Master来构建任务。我们可以为Jenkins 配置多台Slave从机,当Slave从机和Jenkins服务建立连接之后,由Jenkins发指令给指定的Slave从机去运行任务,消耗的资源由Slave从机去承担。

添加Slave节点

在Jenkins中,Master和Slave都称为Node(节点),我们可以在Jenkins中配置多个Slave 节点。

进入Jenkins首页,选择Manage Jenkins -> Manage Nodes and Clouds -> New NodeManage Jenkins -> Manage Nodes and Clouds -> New Node,配置参考如下:

                      2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+icon-default.png?t=N176https://www.bilibili.com/video/BV1AF411T7qJ/?spm_id_from=333.999.0.0&vd_source=6e2d6c374fd551babe1ac6a5e60c5a75

需要注意 Launch method 一定要开启 Jenkins的远程连接端口,否则Slave节点无法连接上Jenkins服务。这种连接用的是 JNLP4 协议, 这种协议是在 WebSocket + TLS 的基础上封装而成的长连接协议。可以在 Jenkins 的安全设置面板中开启:进入Jenkins首页-> Configure Global Security,选择如下配置

连接Slave节点

进入到Nodes管理页面,从Jenkins首页->Manage Jenkins->Manage Nodes and Clouds进入:

可以看到我们可以通过两种方式将Slave节点连接上Jenkins:

(1)Launch agent from browser在从机中通过浏览器方式启动

(2)Run from agent command line 在从机中通过运行命令行方式驱动

1. 浏览器方式连接

在需要作为从机的主机上通过浏览器访问上述页面,点击Launch图标将会在下载一个名为slave-agent.jnlp文件,下载完毕双击打开,初始化之后会显示已连接:

再次进入到节点管理页面,此时Jenkins显示Slave节点已连接上:

            2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+icon-default.png?t=N176https://www.bilibili.com/video/BV1AF411T7qJ/?spm_id_from=333.999.0.0&vd_source=6e2d6c374fd551babe1ac6a5e60c5a75

注意:Jenkins连接Slave节点需要一段时间,不会立即更新连接状态,我们需要多等待下。

2. 命令行方式连接

点击蓝色“agent.jar”链接,会下载一个名为agent.jar文件:

按照上述提示,在命令行终端输入对应命令,最后会提示已连接。

Jenkins任务配置Slave节点执行

进入到任务配置页面中,选择General对应配置指定对应从机:

再次构建任务通过Console Ouput控制台输出可以看到任务已经由Jenkins调度从机执行:

可能碰到的问题

在Jenkins任务开始构建之后发现出现如下的错误信息:

问题发生原因:

因为任务是在Slave节点执行,所以Jenkins需要Slave节点的环境变量(包括Git、JDK等等),而Jenkins 默认使用的是本身宿主机的环境变量。

解决方案:

进入到Slave节点的配置页面中,选择Node Properties -> Tool Locations,指定Git及JDK在从机上对应的路径

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+icon-default.png?t=N176https://www.bilibili.com/video/BV1AF411T7qJ/?spm_id_from=333.999.0.0&vd_source=6e2d6c374fd551babe1ac6a5e60c5a75

 

相关内容

热门资讯

形容很舒服的成语 形容很舒服的成语  成语是汉语词汇中定型的词。成语,众人皆说,成之于语,故成语。成语多为四字,亦有三...
摘抄形容心境的成语 摘抄形容心境的成语  1、抑郁寡欢:由于心情不舒畅而很少高兴的时候。  2、惊魂未定:指受惊后心情还...
包含不古的成语 关于包含不古的成语  [不古不今] 指事物不正常,古代现代都不曾有过。原讥讽人学无所得却故作诡异。后...
如胶似漆成语 如胶似漆成语  成语是中国传统文化的一大特色,有固定的结构形式和固定的说法,表示一定的`意义,在语句...
“锥刀之末”的意思 “锥刀之末”的意思 成语拼音: [zhuī dāo zhī mò] ...
“出神入化”的意思 “出神入化”的意思 成语拼音: [chū shén rù huà] ...
形容诗词的成语拼音与相应解释 形容诗词的成语拼音与相应解释  【提要】本篇《形容诗词的成语》由应届毕业生小编特别为需要成语古诗古文...
形容哭的的成语 形容哭的的成语  哭,是一种心情的状态,也是一种特殊的感受,那么有哪些成语是形容哭的'呢?下面小编就...
数字成语接龙 数字成语接龙精选  一尘不染 二龙戏珠 三生有幸 四分五裂 五光十色 六神无主 七嘴八舌 八面威风 ...
“铁钉铁铆”的意思 “铁钉铁铆”的意思 成语拼音: [tiě dīng tiě mǎo] ...
“情之所钟”的意思 “情之所钟”的意思 成语拼音: [qíng zhī suǒ zhōng] ...
“谦受益,满招损”的意思 “谦受益,满招损”的意思 成语拼音: [qiān shòu yì,mǎn zhāo sǔ...
“强唇劣嘴”的意思 “强唇劣嘴”的意思 成语拼音: [qiáng chún liè zuǐ] ...
“人云亦云”的意思 “人云亦云”的意思 成语拼音: [rén yún yì yún] ...
“变化无方”的意思 “变化无方”的意思 成语拼音: [biàn huà wú fāng] ...
“细高挑儿”的意思 “细高挑儿”的意思 成语拼音: [xì gāo tiǎo ér] ...
“分鞋破镜”的意思 “分鞋破镜”的意思 成语拼音: [fēn xié pò jìng] ...
“幺幺小丑”的意思 “幺幺小丑”的意思 成语拼音: [yāo mó xiǎo chǒu] ...
“谋臣武将”的意思 “谋臣武将”的意思 成语拼音: [móu chén wǔ jiàng] ...
“攒三集五”的意思 “攒三集五”的意思 成语拼音: [zǎn sān jí wǔ] ...