Docker與Web自動化測試:一鍵建立Selenium Grid集羣

Docker的容器技術的優秀特性,例如秒級啓動、應用隔離、良好的可移植性等,能夠在DevOps中大顯身手,並推進持續集成,持續交付等理念落地。今天咱們就將結合Selenium Grid來介紹Docker在自動化測試中的使用場景。git

Selenium Grid 簡介

Selenium 是針對Web應用的自動化測試框架和工具集合,支持多種瀏覽器和編程語言。Selenium的測試用例直接運行在瀏覽器中,並模擬用戶的操做。github

Selenium Grid是一個分佈式Web測試工具,能夠將測試透明地分發到多個主機上,並行地執行。Selenium Grid架構中包含兩個主要角色:Hub是中心點控制節點,而Node是Selenium的工做節點,它們註冊到Hub上,並會操做瀏覽器執行由Hub下發的自動測試用例。docker

圖片描述

以傳統的方式部署分佈式Selenium Grid集羣有必定的技術難度。並且一個瀏覽器在操做系統上只能安裝一個版本且只能有一個運行實例。好比爲了針對不一樣版本的Chrome進行測試,須要將指定版本的Chrome瀏覽器安裝到不一樣物理機或虛擬機上,這樣要耗費大量時間和機器成原本準備測試環境。編程

在去年Selenium Conf 2015上,Marek Jastrzebaki介紹並演示了利用Docker技術來部署Selenium Grid的示例,能夠優雅地解決上述問題。後端

讓咱們也嘗試一下Docker帶給咱們不一樣的測試體驗吧 :-)瀏覽器

利用阿里容器服務搭建自動測試環境

咱們將在阿里容器服務上面搭建Selenium Grid的示例,並運行自動化測試用例。架構

下面的DockerCompose模板描述了一個Selenium Grid集羣的部署方式:它會建立一組容器,其中包含1個Selenium Hub容器,3個Firefox Node和3個Chrome Node。這裏全部的Docker鏡像能夠從 https://github.com/denverdino/docker-selenium 得到,它們在Selenium官方鏡像基礎上,修復了節點和Hub容器在從新啓動後的一些問題。這些修改稍後會提交社區。框架

圖片描述

注:你能夠利用Docker Compose在本地Docker環境上測試上述腳本,可是須要手工伸縮節點。編程語言

在阿里雲容器服務上部署完成以後,很快咱們就能夠看到容器應用所包含的全部容器都已經啓動成功。分佈式

圖片描述

咱們能夠經過點擊hub服務來得到Grid Console的訪問信息。

圖片描述

點擊訪問端點後,在瀏覽器中能夠看到,Selenium Grid的控制檯裏已經有6個節點就緒,其中3個是Firefox節點,3個是Chrome節點。

圖片描述

下面咱們來運行Web測試。我提供了一個很是簡單的測試示例:利用Python的Selenium bindings和nose並行測試框架,它會並行地調用Firefox和Chrome在百度和雲棲社區上搜索和docker相關的內容。

爲了簡化使用,我也提供Docker鏡像來調用Selenium測試腳本。詳見 https://github.com/denverdino/docker-selenium/tree/master/test

咱們選擇以前Selenium測試應用,點擊配置變動後將docker-compose模板更新爲以下內容。它會添加test service來調用hub分發執行測試用例。

圖片描述

圖片描述

注意:修改應用配置後,須要更新應用版本便於追蹤。

變動配置完成後過幾十秒鐘,咱們發現「test」服務已經中止運行,在日誌中咱們能夠看到全部自動化測試已經執行完畢。

圖片描述

總結

經過Docker能夠大大簡化Selenium Grid分佈式測試的部署,削減機器資源消耗,減小配置虛擬機所花的時間,極大的提升了測試效率。

Docker和測試領域還能夠有不少結合點:好比利用Docker鏡像良好的可移植性,咱們能夠在開發、測試、生產環節中保證一致性;利用容器編排,咱們能夠低成本、快速的構建集成測試環境,來對應用進行有效驗證,等等。

之後咱們還會介紹如何利用阿里雲容器服務把DevOps過程串聯起來,讓開發者簡單從一個簡單的git commit開始,自動化地觸發並執行完整的應用構建、測試、和更新流程。

關於阿里百川

阿里百川(baichuan.taobao.com)是阿里巴巴集團「雲」+「端」的核心戰略是阿里巴巴集團無線開放平臺,基於世界級的後端服務和成熟的商業組件,經過「技術、商業及大數據」的開放,爲移動創業者提供可快速搭建App、商業化APP並提高用戶體驗的解決方案;同時提供多元化的創業服務-物理空間、孵化運營、創業投資等,爲移動創業者提供全面保障。

相關文章
相關標籤/搜索