摘 要 本文對自動化測試概念發(fā)展演變過程進(jìn)行了簡要概述,結(jié)合業(yè)界流行工具Selenium以實例進(jìn)行描述,以期達(dá)到理論結(jié)合實際效果,同時也便于讀者理解和應(yīng)用。
【關(guān)鍵詞】Selenium WEB測試 自動化測試
隨著大數(shù)據(jù)時代到來客戶需求變化導(dǎo)致軟件開發(fā)模型多樣化,巨大的數(shù)據(jù)量和重復(fù)性的輸入輸出工作給手工測試帶來了極大的困擾,特別在產(chǎn)品版本升級的回歸測試,耗費大量人力物力。在此背景下,自動化測試?yán)砟詈蛯嵺`應(yīng)運而生。并形成了先進(jìn)基礎(chǔ)理論和框架和眾多工具,極大提高了測試效率。自動腳本不僅可用于單元測試,還可用于集成測試,進(jìn)而進(jìn)行整體功能測試。
1 自動化測試概念
1.1 定義
自動化測試是測試過程中僅需由測試者開發(fā)測試運行腳本,不需用戶參與過程即可自動執(zhí)行測試程序。所開發(fā)代碼可以用于單元測試、功能測試,以及集成測試,從而完成整個系統(tǒng)的測試工作??傊詣踊瘻y試的過程就是用代碼測試源程序,指導(dǎo)測試過程,代替人工測試。
1.2 自動化測試發(fā)展階段
1.2.1 簡單錄制回放階段
利用工具錄制對所需測試操作,執(zhí)行腳本,實現(xiàn)自動化回放。
1.2.2 數(shù)據(jù)驅(qū)動階段
使用實例作測試數(shù)據(jù),采用專用格式存儲和讀取,在測試過程中調(diào)用不同測試數(shù)據(jù)及相關(guān)變量。
1.2.3 關(guān)鍵字驅(qū)動階段
以數(shù)據(jù)驅(qū)動為基礎(chǔ),在測試工具提取出改進(jìn)的測試用例:將數(shù)據(jù)與腳本分離,把內(nèi)部元素和外部對象分離,從而也把測試描述與具體實現(xiàn)方式區(qū)分。
1.2.4 模型驅(qū)動階段
通過不同測試場景設(shè)置相應(yīng)條件,每一個模型對應(yīng)一個測試場景。
1.3 自動化測試框架
它就是由多個自動化測試基本模塊、管理模塊及統(tǒng)計模塊等所組成的工具集合。測試框架分為二類:Selenium等提供最基礎(chǔ)的自動化功能測試模塊,通過模擬鼠標(biāo)鍵盤,點擊或操作該頁面中的測試元素,驗證該元素屬性是否正確,判定程序正確性;Robot等可提供自動化測試執(zhí)行和管理模塊,不提供基礎(chǔ)支撐,僅用于組織管理和執(zhí)行那些已有的測試用例。
2 自動化測試工具Selenium簡介
2.1 Selenium組成
Selenium由ThoughtWorks推出的開源測試工具,針對功能測試或驗收測試中JUnit無法解決的測試問題,用戶與Web系統(tǒng)交互時所需的回歸測試、集成測試或冒煙測試。此工具支持多種瀏覽器,也支持各類編程語言。
它集成了WebDriver,提供支持在復(fù)雜頁面中重新加載以及動態(tài)網(wǎng)頁等不能處理的情況。最新的Selenium2.9.1由以下內(nèi)容組成: IDE、Core、Remote Control以及Grid四大模塊。
2.2 Selenium工作原理
Selenium具體的架構(gòu)如下:
前端:Firfox、IE、Chrome平臺運行的WebApp;
中間層:WebDriver;
后端:Java、Ruby、C#等客戶端。
2.3 Selenium工作環(huán)境
開發(fā)環(huán)境:IDE使用Eclipse、NotePad等,開發(fā)語言可使用Java、C#;
運行環(huán)境:Selenium四大核心、Firefox等瀏覽器;
其它工具:部署:Ant;集成:Junit4、TestNG。
3 具體測試過程
3.1 分析系統(tǒng)測試需求
以郵箱——用戶登錄為例,需求如下:
(1)系統(tǒng)帳號、登錄密碼正確與否;
(2)系統(tǒng)登錄后是否有跳轉(zhuǎn)頁面;
(3)Session過時后有否提示重新登錄;
(4)登錄用戶相關(guān)信息的驗證。
3.2 測試用例
設(shè)計測試用例:
需求描述:登錄賬戶、密碼是否正確; 前置條件:處于登錄界面
基本操作 1.輸入賬號密碼;2.點擊登錄按鈕;
用例01,Test001/123456 登錄并跳轉(zhuǎn) 匹配用例
用例02,Test001/654321 提示密碼錯 斷言失敗
3.3 錄制測試過程
主要步驟:
(1)在Firefox添加Selenium IDE插件;
(2)Selenium IDE的Base URL輸入訪問地址并點擊錄制;
(3)登錄頁面輸入賬號、密碼,點擊登錄按鈕,進(jìn)入主面;
(4)Selenium會自動記錄并通過以下參數(shù)定位網(wǎng)頁元素并而完成腳本錄制:
open /
selectFrame login_frame
type id#u Test001
type id#p pw123456
clickAndWait id#login_button
備注:
Command:執(zhí)行的操作 Target:操作對象 Value:輸入值;
3.4 生成測試腳本
在Selenium IDE中,通過菜單 “Export TestCase As…”,選擇“Java/ JUni t 4/ WebDriver”,將IDE與Selenium2.9相結(jié)合,完成IDE向Webdriver的Java腳本轉(zhuǎn)化,可以生成Junit4框架文件。
3.5 執(zhí)行并分析測試結(jié)果
編輯測試腳本后,在Eclipse運行,WebDriver會自動啟動Firefox,在頁面賬號和密碼處分別自動輸入用例Test001數(shù)據(jù)項,并自動點擊“登錄”按鈕,跳轉(zhuǎn)至主頁面。測試結(jié)果是“登錄并跳轉(zhuǎn)成功”,符合預(yù)期,測試通過。修改測試用例腳本,修改密碼,再次運行時測試不通過。
4 總結(jié)
本文定義了自動化測試,回顧了發(fā)展歷程,簡棕了Selenium構(gòu)成、工作原理及環(huán)境,結(jié)合實例列出過程。盡管自動化測試針對重復(fù)性測試工作,但是測試人員主要工作都用在編寫、調(diào)試以及維護(hù)測試代碼,以至偏離原有目標(biāo),故實踐中,應(yīng)正確認(rèn)識自動化測試優(yōu)缺點,將手工與自動有機結(jié)合達(dá)到最佳效益。
參考文獻(xiàn)
[1]Glenford J.Myers,Tom Badgett,Corey Sandler.軟件測試的藝術(shù)(原書第3版) [M].北京:機械工業(yè)出版社,2013.
[2]陸璐,王柏勇.軟件自動化測試技術(shù)[M].北京:清華大學(xué)出版社,2006.
[3]溫素劍.零成本實現(xiàn)Web自動化測試——基于Selenium和Bromine[M].北京:電子工業(yè)出版社,2011.
作者簡介
何煌(1973-),男,廣東省興寧市人。軟件工程碩士學(xué)位,現(xiàn)為廣東創(chuàng)新科技學(xué)院講師。研究方向為軟件工程。
作者單位
廣東創(chuàng)新科技學(xué)院 廣東省東莞市 523960