盧晨
摘要:基于Selenium自動化測試技術(shù)對出差管理系統(tǒng)進行了自動化測試設(shè)計,介紹了Selenium在Web應(yīng)用程序中進行自動化測試的過程。通過案例說明Selenium對Web應(yīng)用程序進行自動化測試的優(yōu)勢。
關(guān)鍵詞:Selenium;自動化測試;信息管理系統(tǒng)
DOIDOI:10.11907/rjdk.143288
中圖分類號:TP391
文獻標(biāo)識碼:A 文章編號文章編號:16727800(2015)001015402
0 引言
隨著軟件應(yīng)用復(fù)雜度的增加,保證軟件質(zhì)量變得越來越難,需要測試人員尋找很多測試方法和技術(shù),以解決產(chǎn)品質(zhì)量問題。自動化測試不僅可以大大減少測試人員的工作量,降低工作難度,還可以避免不必要的人為疏忽與問題,加快測試速度,保證產(chǎn)品質(zhì)量和進度,提高效益。
目前自動化測試研究如火如荼,涌現(xiàn)了很多自動化測試[1]工具,例如占據(jù)主流應(yīng)用HP的QTP。QTP對系統(tǒng)環(huán)境要求很高,運行時會占用很大的內(nèi)存空間,且價格昂貴。另外,軟件開發(fā)需求千變?nèi)f化,自動化測試工具要不斷適應(yīng)這些變化。
1 Selenium概述
Selenium是一個用于Web應(yīng)用程序測試的工具,它提供了一系列測試函數(shù),用于支持Web自動化測試[2]。這些函數(shù)非常靈活,能夠通過多種方式定位界面元素,并將結(jié)果與系統(tǒng)實際結(jié)果進行比較。作為一款強大的測試工具,Selenium具有以下幾個特性:①可以對多種瀏覽器進行測試,如IE、Firefox、Safari、Chrome、Android手機瀏覽器等;②支持多種語言,如Java、C#、Python、Ruby、PHP等;③跨平臺,如Windows、Lunix、iOS、Android等;④開源免費。
Selenium提供很多工具組供測試工程師選用:①Selenium IDE:用于構(gòu)建腳本的初級工具;②Selenium 1(Selenium RC):Selenium最主要的測試工具之一,支持多語言和多瀏覽器;③ Selenium 2:集成了WebDriver,WebDriver通過原生瀏覽器支持或者瀏覽器擴展直接控制瀏覽器。測試者可以根據(jù)不同的平臺、不同瀏覽器選擇不同的WebDriver去執(zhí)行測試。WebDriver可以驅(qū)動本地或遠程機器上的瀏覽器。對比Selenium 1 時代的Selenium RC,WebDriver優(yōu)勢明顯[3];④ Selenium Grid:一般用于分布式測試和集群測試,Selenium 能同時并行地、在不同環(huán)境上運行多個測試任務(wù),極大地加快了Web應(yīng)用的功能測試。
本文采用Selenium2測試工具,對某公司出差管理系統(tǒng)的核心功能進行了一整套Selenium自動化測試,主要步驟是:①需求分析;②測試用例設(shè)計;③根據(jù)測試用例設(shè)計測試腳本,并執(zhí)行測試;④分析測試結(jié)果。
2 Selenium測試分析
以某公司外派到日本的員工出差信息管理系統(tǒng)為例,其功能模塊如圖1所示。
圖1 出差管理系統(tǒng)功能結(jié)構(gòu)
系統(tǒng)的核心功能主要是對各種信息進行增加、刪除、修改、查找。針對這些核心功能,需要分別設(shè)計測試用例并編寫測試腳本,通過腳本運行,可以有效完成各功能的測試。
3 Selenium測試設(shè)計
根據(jù)系統(tǒng)功能結(jié)構(gòu)圖和系統(tǒng)需求,對整個系統(tǒng)進行模塊劃分。以個人信息模塊為例,其主要功能有新增個人信息、修改個人信息、按不同條件查找個人信息和刪除個人信息等4大功能,功能界面如圖2所示。
圖2 功能界面
利用黑盒測試用例設(shè)計方法設(shè)計測試,見表1。
4 腳本編寫與運行結(jié)果
根據(jù)設(shè)計的測試用例TC001編寫測試腳本,代碼如下:
(1) 通過driver打開網(wǎng)站鏈接:
WebDriver driver = new FirefoxDriver();
driver.get("網(wǎng)站地址");
(2) 獲取“新增員工”按鈕并點擊:
WebElement element = driver.findElement (By.id("按鈕id")) ;
element.click();
(3) 獲取界面組件并輸入內(nèi)容:
WebElement element = driver.findElement(By.id("組件id"));
element.sendKeys(“輸入內(nèi)容”);
(4) 點擊提交按鈕:
WebElement element = driver.findElement (By.id("提交按鈕id")) ;
element.click();
(5) 等待提交后的系統(tǒng)反饋:
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
(6) 獲取彈出對話框信息:
Alert alert = driver.switchTo().alert();
String text = alert.getText();
System.out.println("alert:"+text);
If(text ==預(yù)期結(jié)果) System.out.println(“Pass”);
alert.accept();
5 語結(jié)
本文介紹了Selenium,并以出差管理系統(tǒng)的新增操作為例,對系統(tǒng)進行了自動化用例設(shè)計和腳本編寫。使用過程中,Selenium的優(yōu)勢非常明顯:因為使用的是面向?qū)ο蟮某绦蛟O(shè)計語言,編寫代碼簡便、易懂,相比較用QTP錄制腳本,Selenium腳本更易于維護,整個測試框架可以用面向?qū)ο笏枷脒M行設(shè)計,框架復(fù)用性高。不足之處是Selenium對測試步驟中的驗證支持度不夠。