寫好了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這個怪蜀黍也在對我微笑了。