引言
要不要做頁面測試自動化的爭議由來已久,不做或少做的主要原因是其成本太高,其中一個成本就是自動化腳本的編寫和維護,那么有沒有辦法降低這種成本呢?童戰同學在其博文《界面自動化測試猜想》提到“將TC自動轉化為自動測試腳本”的構想,大家都覺得這個還是很有難度的,那么我們退一步,“將功能測試執行的過程錄制下來轉化為自動化測試腳本”,這個難嗎?或許不難,借用Selenium這個工具就可以實現。
Selenium簡介
Selenium是ThoughtWorks公司開發的強大的web自動化測試工具。說它強大是因為:
測試直接在瀏覽器中運行,就像真實用戶所做的一樣,從終端用戶的角度測試應用程序。
使瀏覽器兼容性測試自動化成為可能。
使用簡單,可生成多種語言的用例腳本。
Selenium主要包含以下三個組件:
Selenium IDE:一個Firefox插件,可以錄制用戶的基本操作,生成測試用例。隨后可以運行這些測試用例在瀏覽器里回放,可將測試用例轉換為其他語言的自動化腳本。
Selenium Remote Control (RC) :支持多種平臺(Windows,Linux,Solaris)和多種瀏覽器(IE,Firefox,Opera,Safari),可以用多種語言(Java,Ruby,Python,Perl,PHP,C#)編寫測試用例。下面是其架構圖
:
Selenium Grid :Selenium RC的擴展,將測試用例部署到多臺Server,并行運行以加快速度節省時間。
Selenium試用
1. 安裝Selenium IDE這個Firefox插件。安裝后打開Firefox,從“工具”菜單選擇“Selenium IDE”-打開Selenium IDE。如下圖所示,紅色的圓點控制腳本錄制的開始和停止。
2. 執行功能測試用例并錄制腳本。
我選擇了一個比較簡單的測試用例做為演示,該測試用例用于驗證未通過實名認證的用戶發布寶貝頁面會出現實名認證提醒信息。主要步驟是:
1) 打開淘寶首頁
2) 點擊“我要賣”
3) 點擊“一口價”
4) 出現登錄頁面,輸入用戶名和密碼登錄
5) 驗證出現的頁面包含以下信息“您需要先通過實名認證”。
在Firefox里執行上述步驟,前面4步的操作會被Selenium IDE忠實的記錄下來,第5步驗證怎么辦?選中相應文字,點擊鼠標右鍵,選擇相應的命令,如下圖所示(在Show All Available Commands里有更多的可用命令供選擇):
錄制完畢后的腳步如下圖示,如果需要的話可以在這里進行一些編輯,一個非常有用的功能是在Target里輸入頁面元素的xpath,點擊Find按鈕,Selenium IED會在真實頁面上用綠色框標注該元素。
3. 在Selenium IDE里運行測試腳本
運行可一次運行所有測試套件或單個用例,對用例的每個步驟也可單步執行,執行過程有詳細的log記錄,如下圖所示:
4. 測試用例轉換為自動化腳本
只在Selenium IDE里運行是遠遠不能滿足需求的,我們需要為測試用例增加一些特性以使其能自動運行持續回歸運行于不同的瀏覽器上,而Selenium IDE可以方便實現用例轉換為自動化腳本,而且支持多種語言,如下圖所示:
Java自動化代碼示例(注意在setUp方法里指定了瀏覽器):
Ruby自動化腳本示例:
小結
由于時間關系未對Selenium做深入研究,對其是否適用我們的web自動化測試不敢妄加斷言,但通過簡單試用覺得其有很多可取之處,希望熟悉web自動化測試的有志之士能結合當前現狀,深入探索實踐,若能借鑒此降低自動化腳本編寫維護成本,善莫大焉!
原文轉自:http://www.anti-gravitydesign.com