簡述
自動化測試在軟件測試中的地位顯得越來越重要,Rational Functional Tester(RFT)是跨平臺的 GUI 自動測試工具,可以自動測試基于 Java、HTML 和 .Net 的應用程序。本文主要介紹如何利用 IBM Rational ClearCase, Ant 以及 STAF 對 RFT 腳本來實現自動編譯和檢測過程的自動化。
回頁首
場景介紹
Lotus Automator(簡稱 LA)是一款基于 Linux 的自動化控制工具。通過使用 LA 測試人員可以登陸 Web 頁面實施軟件自動下載、安裝配置、定制自動操作服務、管理和執行自動化測試。這一測試框架所需環境有 LA server、RFT clients、STAF。下面我們首先來介紹一下某測試團隊基于 LA 這一框架下的自動化測試的場景及流程。
圖 1. 當前自動化測試流程
如圖 1,測試人員通過 LA Web 頁面提交任務到給 LA server,LA 通過 STAF 控制測試機上的 RFT 執行自動化腳本的更新,然后執行腳本,收集腳本執行信息以及發送郵件報告。
LA Admin 為了保證 LA 上的腳本的更新,會在本機安裝好 RFT 和 ClearCase Remote Client(CCRC),通過 CCRC 手動更新 ClearCase 上的最新代碼,通過本機 RFT 編譯腳本,然后打包壓縮放到 LA 服務器上。如果有編譯錯誤也是 LA Admin 發送郵件去通知腳本開發人員。
隨著測試任務的加重和項目的擴大,當前這一流程的缺點越來越顯示出來。每天有大量的代碼更新,LA Admin 耗費了大量的時間在維護 LA Server 上的工作,重復性極高。測試工作也非常依賴于 LA Admin,否則就不能及時得到最新的腳本和最新的測試結果。
于是在這一場景中,測試團隊經過分析提出了這樣一個需求,如何將 LA Server 上的測試腳本能夠每天進行自動更新和編譯,并且最新的腳本中不能有編譯錯誤,這樣才能保證測試機上拿到的腳本也是最新的,也不會影響到測試任務的執行。同時也節省了 LA Admin 維護更新代碼的時間,把每天重復性的工作自動化起來。
本文中就是要實現這樣兩個目標,一是自動更新沒有編譯錯誤的腳本到 LA Server 上,二是如果發現有編譯錯誤,及時通知到腳本的開發人員要求及時修復編譯錯誤。
回頁首
工具簡介
本文主要利用版本控制工具 Rational ClearCase,開源軟件 STAF 和編譯工具 Ant 來實現上述場景中的兩個目標。
現在先簡要介紹下這幾個工具在本文中的應用。
ClearCase: ClearCase(CC) 主要應用于復雜產品的并行開發、發布和維護,其功能劃分為四個范疇:版本控制、工作空間管理(Workspace Management)、構造管理(Build Management)、過程控制(Process Control)。本文中的 ClearCase 主要用于版本控制,代碼的更新和查詢代碼更新者,以及創建代碼的 baseline 以備后用。
STAF:STAF(Software Testing Automation Framework)是開源、跨平臺、支持多語言的自動化測試框架,它的設計核心理念是稱為“服務”的可重用組件(例如,進程調用,資源管理,日志和監控等)。STAF 提供的常用服務有程序調用服務(Process Service),文件系統服務(FileSystem Service),日志服務(Log Service),資源池服務(ResPool Service),監控服務(Monitor Service),信號量服務(Sem Service),壓縮服務(Zip Service),Ping 服務(Ping Service),變量服務(Var Service)等等。
在本文中 STAF 除了用來作為測試機客戶端和 LA 服務器通信之外,主要還用到定時服務(Cron Service)來定時啟動服務,程序調用服務(Process Service)調用 Java 外部程序,郵件服務(Email Service)來發送郵件,壓縮服務(Zip Service)來打包腳本上傳到 LA 服務器。像 Cron 和 Email 這些服務需要 STAF V3 以上的版本。
ANT:Ant 是一種基于 Java 的 build 工具。當開始一個新的項目時,首先應該編寫好 Ant 構建文件。構建文件定義了構建過程,并被團隊開發中每個人使用。Ant 構建文件默認命名為 build.xml,也可以取其他的名字。這里主要用它來編譯 RFT 腳本。
回頁首
流程實現與步驟
現在我們就基于上面提到的這些工具來實現對 RFT 腳本進行自動更新和編譯檢錯。
我們將用一臺安裝好 ClearCase Client 的機器替代 LA Admin 的工作,在這臺機器上需要準備以下環境:
安裝 ClearCase Client 并且加入到你所在的項目當中去
安裝 STAF
安裝 Ant
圖 2. 改進后的自動化測試流程
改進后的方案如圖 2,從圖 2 中我們可以看到 QE 的工作流程沒有變,仍然跟以前一樣通過 LA Web 頁面提交任務到 LA 服務器上來控制測試機上的測試工作。改進的是把 LA Admin 的工作從這個流程當中去掉了。取而代之的是一臺裝好 ClearCase Client,STAF,Ant 的機器。利用 Ant 編譯測試腳本,Cleartool 自動更新 View,找到發生編譯錯誤的測試腳本的 owner,并且新增了一個創建每日的 baseline 的功能,方便找回任意時間的 baseline 代碼。利用 STAF 開啟定時服務,啟動腳本進行測試代碼的更新編譯和上傳,無需人工干預。
圖 3. 測試腳本更新和編譯流程
具體的更新和編譯流程如圖 3,下面我們來逐步解析下這個流程:
一、Update view(Cleartool)
首先是要通過 ClearCase Client 端來更新到最新的測試腳本,命令如下:
cleartool update <path> |
原文轉自:http://www.anti-gravitydesign.com