Docker-Selenium在WebUI測(cè)試中的使用

selenium簡介

Selenium是一個(gè)WEB自動(dòng)化測(cè)試工具
支持跨瀏覽器的自動(dòng)化測(cè)試
支持跨操作系統(tǒng)的自動(dòng)化測(cè)試
支持多中編程語言編寫腳本
支持分布式測(cè)試分發(fā)和管理
擁有一個(gè)支持錄制的FF插件
同時(shí)它又是一個(gè)擴(kuò)展性非常好的工具,可以通過開發(fā)測(cè)試驅(qū)動(dòng)來添加其可以支持的瀏覽器種類。

為什么使用dockr

Docker采用Container虛擬化技術(shù),可以快速啟動(dòng)同時(shí)保持主機(jī)與虛擬化的隔離性,建立好Image不論是要輸出到Linux,Windows還是Mac,只要主機(jī)可以執(zhí)行Docker Engine就可以保證執(zhí)行的一致性,要做部署或者水平擴(kuò)展都極其方便。還有一個(gè)很重要的原因就是使用docker可以執(zhí)行多個(gè)不同版本的瀏覽器。

正文

docker安裝

docker的安裝就不在這里做講解了,大家Google一下就可以找到答案了。

創(chuàng)建并運(yùn)行容器

  • 創(chuàng)建selenium hub容器
    docker run -d -p 4444:4444 --name selenium-hub selenium/hub
    
  • 創(chuàng)建chrome node容器
    docker run -d -p 6001:5900 --name chrome01 --link selenium-hub:hub selenium/node-chrome-debug
    
  • 創(chuàng)建firefox node容器
    docker run -d -p 7001:5900 --name firefox01 --link selenium-hub:hub selenium/node-firefox-debug
    
  • 查看正在運(yùn)行的容器
    [root@Jelly-Test-119 ~]# docker ps
    CONTAINER ID        IMAGE                                                                                                                         COMMAND                  CREATED             STATUS              PORTS                    NAMES
    43c587f18fa2        selenium/node-firefox-debug                                                                                                   "/opt/bin/entry_point"   57 minutes ago      Up 57 minutes       0.0.0.0:7001->5900/tcp   firefox01
    f8afcb28a865        selenium/node-chrome-debug                                                                                                    "/opt/bin/entry_point"   About an hour ago   Up About an hour    0.0.0.0:6001->5900/tcp   chrome01
    8c5fa9854d38        selenium/hub                                                                                                                  "/opt/bin/entry_point"   About an hour ago   Up About an hour    0.0.0.0:4444->4444/tcp   selenium-hub
    

VNC遠(yuǎn)程瀏覽器環(huán)境并測(cè)試

  • VNC安裝和使用
    debug結(jié)尾的鏡像都帶有VNC服務(wù)端,本機(jī)安裝VNC客戶端,即可遠(yuǎn)程連接。
    以chrome01的容器為例:
    輸入172.16.1.119:6001-->回車-->輸入密碼:secret-->確認(rèn)-->進(jìn)入容器桌面
    VNCViewer.png
  • 編寫UI測(cè)試用例
    在這里使用Nodejs編寫測(cè)試用例,記得要先 npm install selenium-webdriver -g
var webdriver = require('selenium-webdriver'),
    By = webdriver.By,
    until = webdriver.until;

var driver = new webdriver.Builder()
    .forBrowser('chrome')
    .usingServer('http://172.16.1.119:4444/wd/hub')
    .build();

driver.get('http://www.google.com');
driver.findElement(By.name('q')).sendKeys('webdriver');
driver.findElement(By.name('btnG')).click();
driver.wait(until.titleIs('webdriver - Google Search'), 1000);
driver.quit();

基本的測(cè)試就是這個(gè)樣子,大家可以打開VNC Viewer觀察一下瀏覽器的狀況。
這篇文章就到這結(jié)束啦,感謝各位的觀看。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容