您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Selenium
Docker+Selenium Grid構(gòu)建分布式Web測試環(huán)境
作者:wywincl 發(fā)布時(shí)間:[ 2017/3/17 10:46:57 ] 推薦標(biāo)簽:功能測試 Selenium

  一. 簡介
  當(dāng)前容器技術(shù)不斷發(fā)展,越來越多的應(yīng)用部署到容器上,改變了軟件部署的方式。因此我們考慮利用Docker容器技術(shù)并且結(jié)合Selenium Grid來搭建一套Web分布式測試集群。
  二. 準(zhǔn)備工作
  Docker環(huán)境
  首先需要在本機(jī)安裝Docker環(huán)境,這里不具體介紹如何在不同系統(tǒng)安裝Docker了。安裝好Docker以后,輸入docker version查看docker的版本信息驗(yàn)證是否安裝成功。


  
Docker Version

  Selenium相關(guān)鏡像
  selenium/hub
  wywincl/node-firefox-debug
  從docker hub上拉取新的鏡像
  docker pull selenium/hub
  docker pull wywincl/node-firefox-debug
  三. 啟動容器
  第一步,啟動selenium-hub
  docker run -d -p 4444:4444 --name selenium-hub selenium/hub
  第二步,啟動node-firefox-debug,注冊到hub節(jié)點(diǎn)上
  docker run -d -P -p 5901:5900 --link selenium-hub:hub wywincl/node-firefox-debug
  四. 測試
  執(zhí)行docker ps命令,查看容器是否正常啟動;
docker ps
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                     NAMES
39693a681c29        wywincl/node-firefox-debug   "/opt/bin/entry_point"   24 minutes ago      Up 24 minutes       0.0.0.0:5901->5900/tcp    elegant_dijkstra
da8c2598666f        selenium/hub                 "/opt/bin/entry_point"   9 days ago          Up 51 minutes       0.0.0.0:32768->4444/tcp   selenium-hub
  運(yùn)行一個(gè)基本的測試用例demo.robot,如下所示, 我們的用例是用Robot Framework編寫的,具體編寫方法請參考Robot Framework測試框架
*** Setting ***
Library    Selenium2Library
*** Variables ***
${HOST}    https://www.baidu.com
*** Test Cases ***
T_Case_1
Log    Open Browser
Open Browser    ${HOST}    firefox    remote_url=http://0.0.0.0:32768/wd/hub
Input Text    id=kw    Robot Framework
Click Button    id=su
Capture Page Screenshot
Sleep    5s
Close Browser
*** Keywords ***
  執(zhí)行測試用例
  robot demo.robot

  我們可以通過vncviewer連接到我們的node-firefox-debug實(shí)例來查看實(shí)際運(yùn)行效果。

  Docker桌面顯示

  上面的Case,我們用了截圖關(guān)鍵字Capture Page Screenshot, 因此我們看到在容器中的firefox的截圖頁面。方便調(diào)試。



Selenium-Screenshot

  點(diǎn)擊預(yù)覽視頻,查看實(shí)際演示效果。
  通過hub-console查看節(jié)點(diǎn)注冊情況

  Selnium hub Grid Console
  到此,我們完成了在Docker中構(gòu)建Firefox執(zhí)行實(shí)例了。后面我們會重點(diǎn)介紹如何利用docker-compose,docker-swarm來構(gòu)建分布式Web測試集群。同時(shí)利用jenkins實(shí)現(xiàn)持續(xù)集成,達(dá)到Devops佳實(shí)踐。
  終的效果圖如下:



  
selenium grid with docker

  五. 貢獻(xiàn)
  大家應(yīng)該注意到了容器中的firefox顯示中文出現(xiàn)了部分亂碼情況,由于目前還沒有時(shí)間解決該問題,希望大家有空可以幫忙解決。項(xiàng)目地址node-firefox-debug, 歡迎大家pull request.

軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd