写好了selenium测试脚本,本地运行没问题,但是现在流行分布式运行,并行执行以显得高大上。
然而,装高大上是要付出代价的。
Selenium Grid 已经完美实现分布式和并行了。
奈何现在会Jenkins就显得牛B了,你不显摆一下jenkins面试官就会觉得你很low.
有些喜欢空谈理论的面试官还特么问你什么是CI 什么是CD。
(呵呵,就不明白了,这些空洞理论上的东西有什么鸟用,你知道CI/CD又如何? 知道了就能写出代码吗?幼稚!)
好吧,你特么喜欢空谈理论,那么陪你吹吹牛也无所谓,不能被理论家看不起。
步入正题,谈谈这些jenkins master-slave配置的坑。
Step 1:在Jenkins的manage node新建一个node,这个node就是一台当作slave机器的电脑,真机虚拟机都行。
建立node只需要取个名字就这么简单,建好之后,这个slave有个红色的X.
因为我们的master机器和slave机器还不能通信。需要对刚才建立的slave节点继续配置。
按照大家的提供的方法,在slave 的lunch method选项里:
应该有 Lanch agen via Java Web Start 这个选项。
然而,我的slave里面并没有这个选项?问题出在哪里?
Step 2: 去 Configure global security [配置全局安全] 里面找到Agents。
可见,默认是disabled,把disbaled改成 random,大神们都是这样干的。
(有埋伏,详见第七步!!!)
Step 3: 回到salve的配置,可见"Lanch agen via Java Web Start"这个选项神奇般的出现了。
惊不惊喜!
Step 4:继续配置,这部不解释,大家都懂。
Step 5:到这一步,slave机器还是有个红色的X。点击这个这个"Lunch"按钮,下载JNLP配置文件。
Step 6:把下载过来的JNLP配置文件拷贝到Slave机器里面去,愉快的运行刚才下载的JNLP配置文件.
Step 7:报错,错在哪?我想到了端口问题,54826这个端口是随机生成的,每次运行JNLP都会随机生成不同的端口。
很明显,这些随机生成的端口被防火墙阻挡了,然而我有不可能把防火墙上所有的端口都打开或者关闭防火墙。
关闭防火墙?纳尼,我的Windows Server 2019 DC才不同意呢。
那么:只能固定端口了。
所以在第二步,那些大神选择 “Random”选项,在这里行不通,得用FIXED固定端口。然后在防火墙里面开发这个端口。
Step 8:在防火墙开放端口后再运行JNLP文件,可见成功"Connected".
Jenkins这个怪蜀黍也在对我微笑了。
作者:国王陛下万万岁
原文链接:https://www.cnblogs.com/majestyking/p/10421492.html