selenium===使用docker搭建selenium分布式测试环境
準備:
#請在此之前務必先了解,selenium grid ;參考:selenium-grid?,下載地址, win-本地部署過程
?
>>>環境準備: Linux操作系統
>>>給Linux安裝Python(linux 默認已經安裝)
>>>安裝docker參考Ubuntu安裝docker步驟,安裝完畢后檢驗,安裝是否正確
>>>docker search selenium? ?命令查看需要安裝的selenium包 ;目前只支持Chrome 和 Firefox兩種瀏覽器
>>>下載主 hub 對象:?sudo docker pull selenium/hub
>>>下載主node - Chrome 鏡像 :sudo docker pull selenium/node-chrome
>>>下載完成后查看鏡像:sudo docker images
?
?>>>啟動主hub 容器:sudo docker run -d -P --name selenium-hub selenium/hub
- -d 表示容器以守護態(Daemonized)形式運行。
- -P 表示 Docker 會隨機映射一個 49000~49900 的端口到內部容器開放的網絡端口。
>>> 啟動分支node 容器 :sudo docker run -d --link selenium-hub:hub selenium/node-chrome
- --link 通過 link 關聯?selenium-hub?容器,并為其設置了別名hub
?>>>查看容器:docker ps? -a?
*?Selenium/hub 容器的端口號為?4444,對Ubuntu映射的端口為?32768,前面通過?-P?參數自動分配
>>> OK!環境搭建至此結束。使用? http://Linux外網地址:32768/grid/console??; 查看環境
?
>>> 運行本地的測試腳本;
from selenium import webdriver from time import sleepdriver = webdriver.Remote( command_executor='http://Linux外網地址:32768/wd/hub', desired_capabilities={'browserName': 'chrome'} )driver.get('https://www.baidu.com')driver.find_element_by_id("kw").send_keys("selenium grid") driver.find_element_by_id("su").click() sleep(1) driver.get_screenshot_as_file("result-1.png") driver.quit()整個執行不過是不可見的,因為他它的運行環境在Linux;要想知道他有沒有執行,可以截圖驗證;
?
>>>如果執行過程中,發現報 Java 空指針異常的錯誤,請刪除掉安裝的容器和鏡像文件,重新安裝一次selenium/hub 和 selenium/node-chrome ;刪除 請參考:停止、刪除所有的docker容器和鏡像
?
總結:
- 這是一個 cs架構的分布式測試模式,測試環境使用docker容器,更加穩定
- 本地,只需要寫好腳本。服務端的測試 鏡像只需要一個 ,使用docker容器創建多個,不需要每個人都在本地搭建測試 環境。測試腳本更具有通用性,執行出錯的幾率降低
- 分布式的好處是效率更高。比如,一個容器上執行創建企業的用例。另外一個容器上執行創建用戶的用例,彼此互不干擾。避免流程性錯誤的出現
轉載于:https://www.cnblogs.com/botoo/p/11044302.html
總結
以上是生活随笔為你收集整理的selenium===使用docker搭建selenium分布式测试环境的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【进阶技巧】如何绘制高颜值XMind思维
- 下一篇: 微信中禁止网页下拉出现网页由XXX提供