WinRunner在项目中的作用
可以用WinRunner為所測(cè)試應(yīng)用程序的GUI,功能和回歸測(cè)試創(chuàng)建自動(dòng)化腳本。
WinRunner的測(cè)試過程
主要包括如下6個(gè)階段:
1).???? 創(chuàng)建GUI Map文件:WinRunner可以通過它來識(shí)別被測(cè)試應(yīng)用程序中的GUI對(duì)象。
2).???? 創(chuàng)建測(cè)試腳本:通過錄制,編程,或兩者的組合創(chuàng)建。在錄制測(cè)試腳本時(shí),在你想檢查被測(cè)試應(yīng)用程序響應(yīng)的地方插入驗(yàn)證點(diǎn)。
3).???? 調(diào)試腳本:用調(diào)試(Debug)的模式運(yùn)行測(cè)試腳本以確保它們可以平穩(wěn)地運(yùn)行。還可以使用WinRunner提供的Step, Step Into, Step out功能來調(diào)試腳本。
4).????? 運(yùn)行測(cè)試:用驗(yàn)證(Verify)的模式運(yùn)行測(cè)試腳本來測(cè)試你的應(yīng)用程序。當(dāng)WinRunner在運(yùn)行中碰到驗(yàn)證點(diǎn)時(shí),它會(huì)將被測(cè)應(yīng)用程序中的當(dāng) 前數(shù)據(jù)和以前捕捉的期望數(shù)據(jù)進(jìn)行比較,如果發(fā)現(xiàn)了任何不匹配,WinRunner將會(huì)把目前的情況捕捉下來作為真實(shí)的結(jié)果。
5).???? 檢查結(jié)果:確定測(cè)試腳本的成功或是失敗。在每次測(cè)試腳本運(yùn)行結(jié)束之后,WinRunner會(huì)將結(jié)果顯示在報(bào)告中。它描述了所有在運(yùn)行中碰到的重要的事件, 例如驗(yàn)證點(diǎn),錯(cuò)誤信息,系統(tǒng)信息或是用戶信息。如果發(fā)現(xiàn)在運(yùn)行中有任何不匹配的驗(yàn)證點(diǎn),你可以在測(cè)試結(jié)果窗口中查看期望的和實(shí)際的結(jié)果。
6).???? 提交缺陷:如果一個(gè)測(cè)試腳本是由于所測(cè)試應(yīng)用程序中的缺陷而導(dǎo)致失敗的,你可以直接從測(cè)試結(jié)果窗口中提取缺陷的相關(guān)信息。
WinRunner 的GUI Map文件
WinRunner 利用GUI Map文件來識(shí)別應(yīng)用程序中的對(duì)象。它將學(xué)習(xí)到的窗口或?qū)ο笮畔?chǔ)存在GUI Map文件中。當(dāng)WinRunner運(yùn)行測(cè)試腳本時(shí),它利用 GUI Map來定位對(duì)象。它從GUI Map文件中讀取對(duì)象的描述并且在被測(cè)應(yīng)用程序中尋找具有相同屬性的對(duì)象。
在GUI Map文件 中的每一個(gè)對(duì)象都有一個(gè)邏輯名稱(logical name)和一個(gè)物理描述(physical description)。對(duì)象的邏輯名稱是由其類決定 的。在大多數(shù)情況下,我們可以將邏輯名稱看成是顯示在對(duì)象上的標(biāo)簽。你可以修改已分配的邏輯名稱當(dāng)它不是十分具有描述性或太長(zhǎng)的時(shí)候。當(dāng)對(duì)象的屬性發(fā)生改 變時(shí),你必須要修改其物理描述。
GUI Map文件的擴(kuò)展名是".gui"。
GUI Map文件分為兩種類型:
·?????????????? 全局GUI Map文件:一個(gè)為整個(gè)應(yīng)用程序使用的GUI Map文件
·?????????????? 每個(gè)測(cè)試腳本的GUI Map文件:在每個(gè)測(cè)試腳本創(chuàng)建之后,WinRunner會(huì)自動(dòng)為其創(chuàng)建一個(gè)GUI Map文件。
我們可以通過工具菜單中GUI Map Editor來查看當(dāng)前載入的GUI Map文件及其內(nèi)容。GUI Map Editor 顯示多個(gè)已創(chuàng)建的GUI Map文件和認(rèn)識(shí)到的帶有邏輯名和物理描述的窗口和對(duì)象。
在錄制腳本時(shí),WinRunner會(huì)自已學(xué)習(xí)對(duì)象和窗口,并將它們儲(chǔ)存在臨時(shí)的GUI Map文件中。我們可以在General選項(xiàng)中指定是否需要每次都載入這種臨時(shí)GUI Map。
當(dāng)我們載入一個(gè)GUI Map文件時(shí),關(guān)于窗口和對(duì)象的信息連同其邏輯名稱和物理描述都載入到內(nèi)存中。因此當(dāng)WinRunner在一個(gè)特定的窗口上運(yùn)行腳本時(shí),它可以用這些在內(nèi)存中的信息識(shí)別對(duì)象。
WinRunner的腳本語言
WinRunner 的腳本語言是Mercury Interactive’s Test Script Language (TSL),這是一種類C的腳本語言。你可以通過 增加另外的TSL函數(shù)和編程元素(例如Windows API)或WinRunner的虛擬編程工具(函數(shù)生成器 (Function Generator))來增強(qiáng)你錄制的腳本。
WinRunner的錄制模式
在WinRunner中,有兩種不同的錄制模式:
·?????????????? 環(huán)境判斷錄制(Context Sensitive recording):通過識(shí)別GUI對(duì)象錄制你在被測(cè)應(yīng)用程序中執(zhí)行的操作。
·?????????????? 模擬錄制(Analog recording):錄制鍵盤的輸入,鼠標(biāo)的點(diǎn)擊,和鼠標(biāo)指針在屏幕上精確的x,y軸
WinRunner的運(yùn)行模式
在WinRunner中,有三種不同的運(yùn)行模式:
·?????????????? 驗(yàn)證Verify:使用這種方式來檢查你的應(yīng)用程序
·?????????????? 調(diào)試Debug:使用這種方式來幫助你識(shí)別測(cè)試腳本中的bug
·?????????????? 更新Update:使用這種方式來更新測(cè)試腳本的期望結(jié)果或創(chuàng)建一個(gè)新的期望結(jié)果文件夾
WinRunner的Add-In
載 入Add-Ins實(shí)際上是將在Add-In中的特殊的函數(shù)裝載到內(nèi)存中。當(dāng)創(chuàng)建測(cè)試腳本時(shí),只有這些選中的Add-In中的函數(shù)會(huì)列在函數(shù)生成器中,在運(yùn) 行腳本時(shí),只有那些在載入的Add-In中的函數(shù)可以被執(zhí)行,否則WinRunner將會(huì)給出一個(gè)不能識(shí)別函數(shù)的錯(cuò)誤信息。
WinRunner的驗(yàn)證點(diǎn)(Checkpoint)
驗(yàn)證點(diǎn)可以把被測(cè)應(yīng)用程序的當(dāng)前行為和早前版本的行為進(jìn)行比較。
在WinRunner中有4種驗(yàn)證點(diǎn):
·?????????????? GUI checkpoints:驗(yàn)證GUI對(duì)象的信息。例如,你可以檢查一個(gè)按鈕是否可用或查看在一個(gè)列表中哪一個(gè)選項(xiàng)被選中。
·?????????????? Bitmap checkpoints:給窗口或所測(cè)試應(yīng)用程序的部分做快照,并把它和早先版本中捕捉的圖像做比較。
·?????????????? Text checkpoints :在GUI對(duì)象或位圖中讀取文字,使你可以驗(yàn)證它們的內(nèi)容。
·?????????????? Database checkpoints:基于你創(chuàng)建在數(shù)據(jù)庫(kù)的查詢,檢查一個(gè)結(jié)果集的內(nèi)容和列、行的數(shù)量
Checklist文件包含了我們正在驗(yàn)證的對(duì)象的屬性和相關(guān)信息 。gui*.chk文件包含了期望的結(jié)果,并儲(chǔ)存在exp文件夾中。??
同步點(diǎn)(synchronization points)
同步點(diǎn)使你可以解決預(yù)期的在測(cè)試腳本和你應(yīng)用程序之間的時(shí)間問題。例如,如果你創(chuàng)建一個(gè)打開數(shù)據(jù)庫(kù)應(yīng)用程序的測(cè)試腳本,你可以增加一個(gè)同步點(diǎn)以讓測(cè)試腳本等待直到數(shù)據(jù)庫(kù)中的記錄載入到屏幕上。
對(duì)于模擬測(cè)試(Analog testing) ,你也可以使用一個(gè)同步點(diǎn)來確保WinRunner在一個(gè)指定的位置重新放置窗口。當(dāng)你運(yùn)行一個(gè)測(cè)試腳本時(shí),鼠標(biāo)指針沿著準(zhǔn)確的坐標(biāo)行進(jìn)。重新放置窗口使鼠標(biāo)指針接觸到窗口中正確的元素。
編譯模塊(compile module)
編譯模塊實(shí)際上也是一種腳本,只不過它包含了一個(gè)可以被其它的測(cè)試腳本頻繁地調(diào)用,用戶自定義函數(shù)集的庫(kù)文件。當(dāng)你載入一個(gè)編譯模塊時(shí),它的函數(shù)將自動(dòng)的被編譯并保存在內(nèi)存中。其它的測(cè)試腳本可以直接調(diào)用它們。
編譯模塊可以改進(jìn)腳本的組織和性能。由于你在使用它們之前已經(jīng)調(diào)試過編譯模塊,因此你的測(cè)試腳本只需要少量的錯(cuò)誤檢查。另外,調(diào)用一個(gè)已經(jīng)編譯的函數(shù)明顯地比解釋測(cè)試腳本中的函數(shù)快得多。
當(dāng)編譯模塊用來儲(chǔ)存可重用的函數(shù)時(shí),測(cè)試腳本包含了在WinRunner中的可執(zhí)行文件。編譯模塊是不可執(zhí)行的。
在保存為編譯模塊時(shí),WinRunner會(huì)自動(dòng)執(zhí)行一次預(yù)編譯。
默認(rèn)情況下,包含TSL代碼的模塊的屬性是“main”。主模塊可以在其他的模塊中被調(diào)用執(zhí)行。除了當(dāng)WinRunner識(shí)別到一個(gè)“call”語句時(shí),主模塊會(huì)被動(dòng)態(tài)地被編譯為機(jī)器代碼。例如:
call cso_init();
call( "C://MyAppFolder//" & "app_init" );
編譯模塊被載入到內(nèi)存中以便其他模塊引用。
reload ("C://MyAppFolder//" & "flt_lib") 或load ("C://MyAppFolder//" & "flt_lib");
數(shù)據(jù)驅(qū)動(dòng)測(cè)試(data driven tests)
當(dāng) 你測(cè)試你的應(yīng)用程序時(shí),你或許想檢查它如何執(zhí)行有著大量數(shù)據(jù)集的相同操作。你可以用一個(gè)運(yùn)行10次的循環(huán)來創(chuàng)建一個(gè)數(shù)據(jù)驅(qū)動(dòng)測(cè)試:每次循環(huán)運(yùn)行時(shí),它由不 同的數(shù)據(jù)集驅(qū)動(dòng)。為了使WinRunner 能夠使用數(shù)據(jù)來驅(qū)動(dòng)測(cè)試,你必須將數(shù)據(jù)連接到所要驅(qū)動(dòng)的測(cè)試腳本。這就叫參數(shù)化 (parameterizing)你的測(cè)試。數(shù)據(jù)存儲(chǔ)在一個(gè)數(shù)據(jù)表格(data table)中。你可以手工執(zhí)行這些操作,或使用 DataDriver Wizard來參數(shù)化你的測(cè)試腳本并儲(chǔ)存數(shù)據(jù)在數(shù)據(jù)表格中。
數(shù)據(jù)驅(qū)動(dòng)測(cè)試的步驟如下:
·?????????????? 創(chuàng)建一測(cè)試腳本
·?????????????? 轉(zhuǎn)換為數(shù)據(jù)驅(qū)動(dòng)的測(cè)試腳本并準(zhǔn)備一個(gè)數(shù)據(jù)庫(kù)
·?????????????? 運(yùn)行測(cè)試腳本
·?????????????? 分析測(cè)試結(jié)果
無法識(shí)別GUI對(duì)象的原因
WinRunner會(huì)由于以下多種原因?qū)е虏荒茏R(shí)別GUI對(duì)象。
·??????????????? 不是標(biāo)準(zhǔn)的Windows對(duì)象
·??????????????? 沒有安裝所需的Add-In
·??????????????? 如果所使用的瀏覽器和WinRunner的版本不兼容,GUI Map編輯器將不能認(rèn)識(shí)在瀏覽器窗口中顯示的任何對(duì)象
。。。
啟動(dòng)文件(start up file)
在General Options ->Environment-> Startup文本框中,選擇或輸入你希望作為啟動(dòng)文件的 測(cè)試腳本
輸入測(cè)試腳本的相關(guān)信息
在創(chuàng)建一個(gè)測(cè)試腳本之前,你可以在Test Properties-> General
總結(jié)
以上是生活随笔為你收集整理的WinRunner在项目中的作用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FMA20180529
- 下一篇: Excel-VBA操作文件四大方法