構建Web UI 自動化測試環境(2)

發表于:2015-11-30來源:IBM作者:沈 銳點擊數: 標簽:
2.替換系統默認更新源。把系統更新源替換為 163 的,后面的軟件安裝速度會比較快一些。 3.安裝必要的軟件(不包括 Oracle Java 和 Sahi):Firefox, Unzip 以及 X

  2.替換系統默認更新源。把系統更新源替換為 163 的,后面的軟件安裝速度會比較快一些。

  3.安裝必要的軟件(不包括 Oracle Java 和 Sahi):Firefox, Unzip 以及 Xvfb。刪除 Open JDK 是為了后面安裝 Oracle Java 做準備。Firefox 不用多說,因為該鏡像用于 Web UI 自動化測試,所以安裝了最新版本的 Firefox。安裝 Unzip 是因為后面安裝 Sahi 需要用到它。Xvfb(X virtual framebuffer)是一個 X11 顯示服務器的實現。它不是將圖形在屏幕上顯示出來,而是在內存中運行所有的圖形操作。對客戶端來說,除了無法看到真正的圖形顯示,沒有其他分別。一般稱這種運行方式為 headless。

  4.安裝 Oracle Java 8。理論上 Sahi 應當也支持 Open JDK,所以安裝 Oracle Java 不是必須的。

  5.安裝 Sahi。上傳了 zip 文件后,用 Unzip 解壓,Sahi 是基于 Java 的,所以解壓后即已安裝好 Sahi。之后,替換了幾個文件,它們的作用如下:

  Userdata.properties

  userdata.properties 中有個屬性叫 proxy_alert.disabled,默認值為 false。用戶第一次啟動 Sahi Dashboard 的時候,會彈出一個如下圖所示的對話框。用戶勾選了“Do no show this message again”并點擊 Continue 按鈕之后,Sahi 修改該屬性值為 true。之后就不會在跳出這個對話框了。由于用 headless 的方式運行 Sahi 無法點擊該對話框,所以必須事先用一個已將該屬性設置為 true 的文件替換 Sahi 默認的 userdata.properties。

  圖 3. Sahi 代理問題對話框

  sahi_example_com

  這是一個證書文件。用戶第一次在 Sahi Dashboard 中打開 Firefox 時的頁面如下圖所示。用戶需要點擊 SSL Manager 鏈接手動接受 SSL 證書。此時,文件 sahi_example_com 被生成到 userdata/certs 目錄下。之后,就不需要再進行該操作了。所以,復制的 sahi_example_com 目的也是為了自動完成這步需要在圖形界面下才能完成的操作。

  圖 4. Sahi 啟動頁

  圖 5. SSLManager 的非信任連接頁面

  browser_types.xml

  替換該文件是為了使 Sahi 以 headless 的方式工作。在該文件中,事先添加了一個名字為 firefox-xvfb 的瀏覽器配置信息。之后,測試腳本就可以指向該瀏覽器運行。具體配置 Sahi 和 Xvfb 的步驟參考。

  6.添加 init.sh 文件

  init.sh 文件用于啟動 Xvfb 和 Sahi。其內容如下。

  圖 6. init.sh 文件內容

  “sleep 5”是因為 Sahi 啟動需要一點時間,若立即運行測試腳本會導致失敗。

  7.修改權限

  最終運行的容器是作為 Jenkins Slave 節點用 Jenkins 用戶運行,因此將整個/usr/local 目錄及子目錄的所有人修改為 Jenkins,并給 Shell 文件添加執行權限。Jenkins 用戶是在基礎鏡像 evarga/jenkins-slave 中創建的,所以在這個 Dockerfile 里沒有創建 Jenkins 用戶的語句。

  8.指定默認執行的命令

  CMD ["/usr/sbin/sshd","-D"] – 該語句令鏡像默認啟動 SSH 服務。事實上,這條語句也可以不添加,因為 evarga/jenkins-slave 的 Dockerfile 中已包含該語句。

  一切就緒之后,在該目錄中執行“docker build -t shenrui/sahi –rm=true”。命令成功執行后,通過“docker images”應當可以查看到名為“shenrui/sahi”的鏡像。該鏡像已經上傳到 Docker Hub,有需要的讀者可以自行拉取。

  Sahi 鏡像構建好之后,接下來準備 Jenkins 容器。Docker Hub 上已有官方的 Jenkins 鏡像,直接用命令“docker pull jenkins”拉取。在 Docker 主機上,創建一個目錄(例如,/data/jenkins_home),并修改權限(chmod 777)以便 Jenkins 容器能讀寫該目錄,然后用命令“docker run -d -t --name myjenkins -p 8080:8080 -v /data/jenkins_home:/var/jenkins_home jenkins”啟動。此時,打開 http://:8080 應當可以看到 Jenkins 的管理頁面。 同樣地,直接拉取 Docker Hub 的 Subversion 的鏡像(docker pull bsboiko/subversion)。不過,還需要做進一步的配置。步驟如下:

  用命令“docker run -i -t bsboiko/subversion /bin/bash”以交互的方式啟動 Subversion 容器。

原文轉自:http://www.uml.org.cn/Test/201507314.asp

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97