引言web
要不要作頁面測試自動化的爭議由來已久,不作或少作的主要緣由是其成本過高,其中一個成本就是自動化腳本的編寫和維護,那麼有沒有辦法下降這種成本呢?童戰同窗在其博文《界面自動化測試猜測》提到「將TC自動轉化爲自動測試腳本」的構想,你們都以爲這個仍是頗有難度的,那麼咱們退一步,「將功能測試執行的過程錄製下來轉化爲自動化測試腳本」,這個難嗎?或許不難,借用Selenium這個工具就能夠實現。瀏覽器
Selenium簡介架構
Selenium是ThoughtWorks公司開發的強大的web自動化測試工具。說它強大是由於:工具
# 測試直接在瀏覽器中運行,就像真實用戶所作的同樣,從終端用戶的角度測試應用程序。測試
# 使瀏覽器兼容性測試自動化成爲可能。spa
# 使用簡單,可生成多種語言的用例腳本。插件
Selenium主要包含如下三個組件:3d
# Selenium IDE:一個Firefox插件,能夠錄製用戶的基本操做,生成測試用例。隨後能夠運行這些測試用例在瀏覽器裏回放,可將測試用例轉換爲其餘語言的自動化腳本。blog
# 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自動化測試的有志之士能結合當前現狀,深刻探索實踐,若能借鑑此下降自動化腳本編寫維護成本,善莫大焉!