M2:10.13.181.2

Docker Engine 從 V1.12.0 版本開始,原生集成了 Docker Swarm,所以只要在每臺機器上安裝 Docker,就可以直接使用 Docker Swarm。在這里,關于 Docker 的安裝不再詳細介紹,請按照官方 Docker Swarm 文檔 進行安裝。安裝完成后,在每臺機器上將 Docker 服務啟動。

提示:

注意:最好關閉機器上的防火墻,否則可能會出現 Swarm 集群網絡連接問題。

關閉防火墻的命令:systemctl stop firewalld.service

禁止防火墻開機啟動命令:systemctl disable firewalld.service

步驟

1、創建管理節點。

我們將機器 M1 作為 manager 節點,在這臺機器上執行命令來初始化集群環境。命令如下:

sudo docker swarm init --advertise-addr 10.13.181.1

執行此命令后,會返回一個用于加入集群的令牌(Token),以便其他 worker 加入此集群。

清單 1. 加入集群令牌示例:

復制代碼 代碼如下:docker swarm join –token SWMTKN-1-5p3kzxhsvlqonst5wr02hdo185kcpdajcu9omy4z5dpmlsyrzj-
3phtv1qkfdly2kchzxh0h2xft 10.13.181.1:2377

如果想再次獲取加入集群的命令,可以通過執行以下命令獲取:

sudo docker swarm join-token worker

2、將機器 M1 也作為 worker 節點添加到集群。

在 manager 節點機器上運行清單 1 的命令,即可將機器 M1 也作為 worker 加入 swarm 集群當中。

3、將另一臺機器 M2 作為 worker 節點添加到集群。

在機器 M2 上執行上述清單 1 中的命令,即可實現 M2 加入集群的功能。

4、運行如下命令創建集群網絡:

sudo docker network create -d overlay seleniumnet

這里,seleniumnet 即是我們所創建的集群網絡名稱。

5、在新建的集群網絡上創建 Selenium Grid 服務。

a. 創建 Selenium Grid Hub 服務。基于集群網絡 seleniumnet,將 4444 端口映射到集群的 4444 端口,將 timeout 時間設置為 120 秒,可以增大或減少 timeout 時間,如清單 2 所示。

清單 2. 創建 Selenium Grid Hub 服務:

復制代碼 代碼如下:sudo docker service create –name selenium-hub –network seleniumnet -p 4444:4444 -e
GRID_TIMEOUT=120 selenium/hub

b. 創建 Selenium Grid Firefox 節點服務并連接到剛創建 Hub 服務。如清單 3 所示。

清單 3. 創建 Selenium Grid Firefox 節點服務:

sudo docker service create \\\\
--name node-firefox \\\\
--replicas 5 \\\\
-p 7900:5900 \\\\
--network seleniumnet \\\\
-e HUB_PORT_4444_TCP_ADDR=selenium-hub \\\\
-e HUB_PORT_4444_TCP_PORT=4444 \\\\
selenium/node-firefox-debug bash -c \\\'SE_OPTS=-host $HOSTNAME /opt/bin/entry_point.sh\\\'

參數說明:

-p: 7900:5900 將 Docker 內部 VNC5900 暴露到宿主機的 7900 端口,使得用戶可以通過 VNC 從外面監控 Docker 內部的執行情況。

c. 創建 Selenium Grid Chrome Node 服務并連接到剛創建 Hub 服務。如清單 4 所示。

清單 4. 創建節點服務:

sudo docker service create \\\\
--name node-chrome \\\\
--replicas 3 \\\\
-p 7901:5900 \\\\
--network seleniumnet \\\\
-e HUB_PORT_4444_TCP_ADDR=selenium-hub \\\\
-e HUB_PORT_4444_TCP_PORT=4444 \\\\
selenium/node-chrome-debug bash -c \\\'SE_OPTS=-host $HOSTNAME 
/opt/bin/entry_point.sh\\\'

參數說明:

-p: 7901:5900 將 Docker 內部 VNC5900 暴露到宿主機的 7901 端口,使得用戶可以通過 VNC 從外面監控 Docker 內部的執行情況。

6、檢查環境搭建是否成功。在機器 M1 上執行以下命令,查看每個服務是否啟動成功:

sudo docker service ls

可以看到 Selenium Hub 和 Firefox 節點、Chrome 節點都已經成功啟動。Firefox 的節點副本是 5,Chrome 的節點副本是 3,如圖 2 所示。

圖 2. Docker 服務清單

我們再通過任意一臺機器的 IP 加 4444 端口來打開 Selenium Hub URL 來查看已啟動的 Firefox 和 Chrome 節點是否已經成功掛載到 Hub 節點上,如圖 3 所示。

Hub url: 10.13.181.1:4444

圖 3. Selenium Hub 的界面圖

從圖 3 可以看出,5 個 Firefox 節點和 3 個 Chrome 節點都已經成功掛載到 Hub 節點上。說明此時 Docker Swarm 環境里已經提供了 5 個 Firefox 節點和 3 個 Chrome 節點可以用來執行 Selenium 自動化測試腳本。

擴容方法

用戶可以根據腳本執行數量,隨時動態的擴容各個節點的數量,提高自動化腳本的執行效率,例如我們需要 10 個可以運行 Firefox 瀏覽器的 Container,對應的命令如下:

sudo docker service scale node-firefox=10

在 Docker Swarm 運行 Jenkins Job

用戶在 Docker Swarm 中運行 Jenkins Job,并不需要在 Jenkins 做多余的配置,而是需要在對應的自動化腳本中調用 Selenium Hub,從而以遠程的方式調用 WebDriver。這樣就實現了在 Docker Container 中運行 Selenium 腳本。

以本文中的場景為例,只需要在自動化腳本中調用遠程 Selenium Hub 即可,如下所示:http://9.111.139.104:4444/wd/hub

在 Selenium Grid 中運行自動化腳本

基本概念

Selenium Grid,用于分布式自動化測試,也就是說一套 Selenium 代碼可在不同的環境上運行,這樣做可以方便的將應用運行在 Docker 所提供的不同 Container 中。

Selenium Grid 有兩個概念:

Hub:主節點,你可以看作總調度中心。
Node:分支節點,你可以看作是真正執行任務的 worker。

也就是說在 Selenium Grid 中只能有一個主 Hub,但可以在本地或遠程建立 N 多個分支節點,測試腳本指向主 Hub,由主 Hub 分配給本地/遠程節點運行測試用例。

實現方式

要實現在 Selenium Grid 中運行自動化腳本,首先我們要創建一個 remote driver 的對象,可以通過圖 4 源碼實現,截圖中所對應的輸入參數 selhub 是 Selenium hub 的 URL:http://9.111.139.104:4444/wd/hub

圖 4. 自動化腳本的代碼截圖

通過調用上述的 driver,就可以實現將自動化腳本運行在 Docker Container 中。

結束語

在持續集成測試中,將測試部署到 Docker Swarm 中,通過 Selenium Grid 自動分配執行測試的節點,可以提升測試效率,增大測試的范圍,在快速迭代中能夠更好的保證所交付的產品質量,節省測試資源。

原文鏈接: https://www.ibm.com/developerw … .html

更多關于云服務器域名注冊,虛擬主機的問題,請訪問三五互聯官網:m.shinetop.cn

贊(0)
聲明:本網站發布的內容(圖片、視頻和文字)以原創、轉載和分享網絡內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。郵箱:3140448839@qq.com。本站原創內容未經允許不得轉載,或轉載時需注明出處:三五互聯知識庫 » 詳解Docker Swarm 在持續集成測試中的應用

登錄

找回密碼

注冊

主站蜘蛛池模板: 合水县| 亚洲国产精品毛片在线看| 国产一区二区在线有码| 人妻av无码系列一区二区三区| 久热re这里精品视频在线6| 国产亚洲精品AA片在线爽| 大地资源高清免费观看| 99国精品午夜福利视频不卡99| 影音先锋在线资源无码| 亚洲人成在线播放网站| 亚洲国产激情一区二区三区| 亚洲一区二区三区| 亚洲国产一区二区三区久| 久久精品a亚洲国产v高清不卡| 欧美疯狂xxxxxbbbbb| 九九热在线观看视频精品| 午夜大片免费男女爽爽影院| 国产免费毛卡片| 国产乱妇无乱码大黄aa片| 国产精品老熟女免费视频| 亚洲欧美人成电影在线观看| 成年女人碰碰碰视频播放| 国产精欧美一区二区三区| 无码一区二区三区久久精品| 免费无码成人AV片在线| 无码h黄肉动漫在线观看| 欧美亚洲另类制服卡通动漫| 不卡AV中文字幕手机看| 国产在线观看播放av| 国语精品自产拍在线观看网站| 国产一区二区亚洲精品| 亚洲另类无码一区二区三区 | 欧美黑人乱大交| 国产精品永久免费成人av| 日韩欧美视频一区二区三区| 亚洲日本韩国欧美云霸高清| 久久精品国产亚洲av高| 少妇又紧又色又爽又刺激视频| 影音先锋啪啪av资源网站| 色成人精品免费视频| 中文字幕在线视频不卡|