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