WinRunner工具

Mercury Interactive公司的WinRunner工具是一種企業級的功能測試工具,用於檢測應用程式是否能夠達到預期的功能及正常運行。通過自動錄製、檢測和回放用戶的套用操作,WinRunner工具能夠有效地幫助測試人員對複雜的企業級套用的不同發布版進行測試,提高測試人員的工作效率和質量,確保跨平台的、複雜的企業級套用無故障發布及長期穩定運行。

企業級套用可能包括Web套用系統,ERP系統,CRM系統等等。這些系統在發布之前,升級之後都要經過測試,確保所有功能都能正常運行,沒有任何錯誤。如何有效地測試不斷升級更新且不同環境的套用系統,是每個公司都會面臨的問題。
如果時間或資源有限,這個問題會更加棘手。人工測試的工作量太大,還要額外的時間來培訓新的測試人員等等。為了確保那些複雜的企業級套用在不同環境下都能正常可靠地運行,你需要一個能簡單操作的測試工具來自動完成應用程式的功能性測試。

WinRunner工具的功能

1、輕鬆創建測試 (錄製)

用WinRuuner創建一個測試,只需點擊滑鼠和鍵盤,完成一個標準的業務操作流程,WinRunner工具自動記錄你的操作並生成所需的腳本代碼。這樣,即使計算機技術知識有限的業務用戶輕鬆創建完整的測試。你還可以直接修改測試腳本以滿足各種複雜測試的需求。WinRunner工具提供這兩種測試創建方式,滿足測試團隊中業務用戶和專業技術人員的不同需求。
WinRunner工具提供兩種測試創建方式:一為點擊滑鼠和鍵盤,讓WinRunner工具自動記錄操作並生成所需的腳本代碼;二為自行修改測試腳本。前者簡單,後者稍為複雜,但可滿足更為複雜的測試需求。

2、插入檢查點(檢測)

在記錄一個測試的過程中,可以插入檢查點,檢查在某個時刻/狀態下,應用程式是否運行正常。在插入檢查點後,WinRunner工具會收集一套數據指標,在測試運行時對其一一驗證。WinRunner工具提供幾種不同類型的檢查點,包括文本的、GUI、點陣圖和資料庫。例如,用一個點陣圖檢查點,你可以檢查公司的圖示是否出現於指定位置。

3、檢驗數據

除了創建並運行測試,WinRunner工具還能驗證資料庫的數值,從而確保業務交易的準確性。例如,在創建測試時,可以設定哪些資料庫表和記錄需要檢測;在測試運行時,測試程式就會自動核對資料庫內的實際數值和預期的數值。WinRunner工具自動顯示檢測結果,在有更新/刪除/插入的記錄上突出顯示以引起注意。

4、 增強測試

為了徹底全面地測試一個應用程式,需要使用不同類型的數據來測試。WinRunner工具的數據驅動嚮導( Data Driver Wizard)可以讓你簡單地點擊幾下滑鼠,就可以把一個業務流程測試轉化為數據驅動測試,從而反映多個用戶各自獨特且真實的行為。
以一個訂單輸入的流程為例,你可能希望把訂單號或客戶名稱作為可變欄,用多套數據進行測試。使用Data Driver Wizard,你可以選擇訂單號或客戶名稱用數據表格檔案中的哪個欄目的數據替換。你可以把訂單號或客戶名稱輸入 數據表格檔案,或從其它表格和資料庫中導入。數據驅動測試不僅節省了時間和資源,又提高了套用的測試覆蓋率。
WinRunner工具還可以通過Function Generator增加測試的功能。使用Function Generator可以從目錄列表中選擇一個功能增加到你的測試中以提高測試能力。例如,你可以選擇”calendar”,然後從日曆功能的下屬目錄中選擇,如Calendar_select_date(),然後你可以直觀地輸入參數,把這個功能插入到你的測試中。
針對相當數量的企業套用里非標準對象,WinRunner工具提供了Virtual Object Wizard來識別以前未知的對象。使用Virtual Object Wizard,你可以選擇未知對象的類型,設定標識和命名。在錄製使用該對象的測試時,WinRunner工具會自動對應它的名字,從而提高測試腳本的可讀性和測試質量。

5、運行測試

創建好測試腳本,並插入檢查點和必要的添加功能後,你就可以開始運行測試。運行測試時,WinRunner工具會自動操作應用程式,就象一個真實的用戶根據業務流程執行著每一步的操作。測試運行過程中,如有網路訊息視窗出現或其它意外事件出現,WinRunner工具也會根據預先的設定排除這些干擾。

6、分析結果

測試運行結束後,你需要分析測試結果。WinRunner工具通過互動式的報告工具來提供詳盡的、易讀的報告。報告中會列出測試中發現的錯誤內容、位置、檢查點和其它重要事件,幫助你對測試結果進行分析。這些測試結果還可以通過Mercury Interactive的測試管理工具TestDirector來查閱。

7、維護測試

隨著時間的推移,開發人員會對應用程式做進一步的修改,並需要增加另外的測試。使用WinRunner工具,你不必對程式的每一次改動都重新創建你的測試。WinRunner工具可以創建在整個應用程式生命周期內都可以重複使用的測試,從而大大地節省時間和資源,充分利用你的測試投資。
每次記錄測試時,WinRunner工具會自動創建一個GUI map檔案以保存套用對象。這些對象分層次組織,既可以總覽所有的對象,也可以查詢某個對象的詳細信息。一般而言,對應用程式的任何改動都會影響到成百上千個測試。通過修改一個GUI Map檔案而非無數個測試,WinRunner工具可以方便地實現測試重用。
8、幫助你的應用程式為無線套用作準備隨著無線設備種類和數量的增加,你的應用程式測試計畫需要同時滿足傳統的基於瀏覽器的用戶和無線瀏覽設備,如行動電話、傳呼機和個人數字助理(PDA)。
無線套用協定是一種公開的、全球性的網路協定,用來支持標準數據格式化和無線設備信號的傳輸。
使用WinRunner工具,測試人員可以利用微型瀏覽模擬器來記錄業務流程操作,然後回放和檢查這些業務流程功能的正確性。

WinRunner工具使用的技巧

一、通配符

![內容].* (空格)
如: !Form.* ,表示為“Form”+任何字元串
!.* Form,表示為任何字元串+“Form”

二、檔案路徑

\\
TSL 語言中,檔案路徑要用“\\”表示

三、控制項識別問題

??有時錄製腳本時發現有的控制項識別不了(比如WEB頁面中的標準控制項識別不了),
可能由以下情況造成:
1. 啟動WinRunner工具時沒有載入相應的Addin;
2. WinRunner工具在應用程式之後啟動;

四、建立資料庫檢查點

有的人發現建立資料庫檢查點時不能建立新的查詢,覺得很奇怪,這是因為系統中沒有安裝Microsoft Query
的緣故。
??Office 2000 中有Microsoft Query的安裝,不過預設是不安裝Microsoft Query的,只要運行Office 2000
的安裝程式,在更改安裝中將Microsoft Query設為從本機運行,確定安裝即可。

五、自動載入GUI Map檔案

static test_Path = getvar("testname"); # 得到測試用例的路徑
static guifile_path = test_Path & "\\GUI_File.gui";
# GUI Map檔案名稱,建議將GUI Map檔案保存在測試腳本的目錄中,如果不是,
將這裡改為相應的絕對路徑或相對路徑
GUI_unload_all(); # 清空已經載入的GUI Map
GUI_load(guifile_path); # 載入GUI Map檔案
report_msg(test_Path); # 報告路徑,調試腳本時用,正式執行可以不要。
可以用WinRunner工具為所測試應用程式的GUI,功能和回歸測試創建自動化腳本。

WinRunner工具的測試過程

主要包括如下6個階段:
1). 創建GUI Map檔案:WinRunner工具可以通過它來識別被測試應用程式中的GUI對象。
2). 創建測試腳本:通過錄製,編程,或兩者的組合創建。在錄製測試腳本時,在你想檢查被測試應用程式回響的地方插入驗證點。
3). 調試腳本:用調試(Debug)的模式運行測試腳本以確保它們可以平穩地運行。還可以使用WinRunner工具提供的Step, Step Into, Step out功能來調試腳本。
4). 運行測試:用驗證(Verify)的模式運行測試腳本來測試你的應用程式。當WinRunner工具在運行中碰到驗證點時,它會將被測應用程式中的當前數據和以前捕捉的期望數據進行比較,如果發現了任何不匹配,WinRunner工具將會把目前的情況捕捉下來作為真實的結果。
5). 檢查結果:確定測試腳本的成功或是失敗。在每次測試腳本運行結束之後,WinRunner工具會將結果顯示在報告中。它描述了所有在運行中碰到的重要的事件,例如驗證點,錯誤信息,系統信息或是用戶信息。如果發現在運行中有任何不匹配的驗證點,你可以在測試結果視窗中查看期望的和實際的結果。
6). 提交缺陷:如果一個測試腳本是由於所測試應用程式中的缺陷而導致失敗的,你可以直接從測試結果視窗中提取缺陷的相關信息。

WinRunner工具 的GUI Map檔案

WinRunner工具利用GUI Map檔案來識別應用程式中的對象。它將學習到的視窗或對象信息儲存在GUI Map檔案中。當WinRunner工具運行測試腳本時,它利用GUI Map來定位對象。它從GUI Map檔案中讀取對象的描述並且在被測應用程式中尋找具有相同屬性的對象。
在GUI Map檔案中的每一個對象都有一個邏輯名稱(logical name)和一個物理描述(physical description)。對象的邏輯名稱是由其類決定的。在大多數情況下,我們可以將邏輯名稱看成是顯示在對象上的標籤。你可以修改已分配的邏輯名稱當它不是十分具有描述性或太長的時候。當對象的屬性發生改變時,你必須要修改其物理描述。
GUI Map檔案的擴展名是".gui"。
GUI Map檔案分為兩種類型:
・全局GUI Map檔案:一個為整個應用程式使用的GUI Map檔案
・每個測試腳本的GUI Map檔案:在每個測試腳本創建之後,WinRunner工具會自動為其創建一個GUI Map檔案。
我們可以通過工具選單中GUI Map Editor來查看當前載入的GUI Map檔案及其內容。GUI Map Editor 顯示多個已創建的GUI Map檔案和認識到的帶有邏輯名和物理描述的視窗和對象。
在錄製腳本時,WinRunner工具會自已學習對象和視窗,並將它們儲存在臨時的GUI Map檔案中。我們可以在General選項中指定是否需要每次都載入這種臨時GUI Map。
當我們載入一個GUI Map檔案時,關於視窗和對象的信息連同其邏輯名稱和物理描述都載入到記憶體中。因此當WinRunner工具在一個特定的視窗上運行腳本時,它可以用這些在記憶體中的信息識別對象。

WinRunner工具的腳本語言

WinRunner工具的腳本語言是Mercury Interactive’s Test Script Language (TSL),這是一種類C的腳本語言。你可以通過增加另外的TSL函式和編程元素(例如Windows API)或WinRunner工具的虛擬編程工具(函式生成器(Function Generator))來增強你錄製的腳本。
WinRunner工具的錄製模式
在WinRunner工具中,有兩種不同的錄製模式:
・環境判斷錄製(Context Sensitive recording):通過識別GUI對象錄製你在被測應用程式中執行的操作。
・模擬錄製(Analog recording):錄製鍵盤的輸入,滑鼠的點擊,和滑鼠指針螢幕上精確的x,y軸
WinRunner工具的運行模式
在WinRunner工具中,有三種不同的運行模式:
・驗證Verify:使用這種方式來檢查你的應用程式
・調試Debug:使用這種方式來幫助你識別測試腳本中的bug
・更新Update:使用這種方式來更新測試腳本的期望結果或創建一個新的期望結果資料夾
WinRunner工具的Add-In
載入Add-Ins實際上是將在Add-In中的特殊的函式裝載到記憶體中。當創建測試腳本時,只有這些選中的Add-In中的函式會列在函式生成器中,在運行腳本時,只有那些在載入的Add-In中的函式可以被執行,否則WinRunner工具將會給出一個不能識別函式的錯誤信息
WinRunner工具的驗證點(Checkpoint)
驗證點可以把被測應用程式的當前行為和早前版本的行為進行比較。

在WinRunner工具中有4種驗證點:

・ GUI checkpoints:驗證GUI對象的信息。例如,你可以檢查一個按鈕是否可用或查看在一個列表中哪一個選項被選中。
・ Bitmap checkpoints:給視窗或所測試應用程式的部分做快照,並把它和早先版本中捕捉的圖像做比較。
・ Text checkpoints :在GUI對象或點陣圖中讀取文字,使你可以驗證它們的內容。
・ Database checkpoints:基於你創建在資料庫的查詢,檢查一個結果集的內容和列、行的數量
Checklist檔案包含了我們正在驗證的對象的屬性和相關信息 。gui*.chk檔案包含了期望的結果,並儲存在exp資料夾中。
同步點(synchronization points)
同步點使你可以解決預期的在測試腳本和你應用程式之間的時間問題。例如,如果你創建一個打開資料庫應用程式的測試腳本,你可以增加一個同步點以讓測試腳本等待直到資料庫中的記錄載入到螢幕上。
對於模擬測試(Analog testing),你也可以使用一個同步點來確保WinRunner工具在一個指定的位置重新放置視窗。當你運行一個測試腳本時,滑鼠指針沿著準確的坐標行進。重新放置視窗使滑鼠指針接觸到視窗中正確的元素。
編譯模組(compile module)
編譯模組實際上也是一種腳本,只不過它包含了一個可以被其它的測試腳本頻繁地調用,用戶自定義函式集的庫檔案。當你載入一個編譯模組時,它的函式將自動的被編譯並保存在記憶體中。其它的測試腳本可以直接調用它們。
編譯模組可以改進腳本的組織和性能。由於你在使用它們之前已經調試過編譯模組,因此你的測試腳本只需要少量的錯誤檢查。另外,調用一個已經編譯的函式明顯地比解釋測試腳本中的函式快得多。
當編譯模組用來儲存可重用的函式時,測試腳本包含了在WinRunner工具中的執行檔。編譯模組是不可執行的。
在保存為編譯模組時,WinRunner工具會自動執行一次預編譯。
默認情況下,包含TSL代碼的模組的屬性是“main”。主模組可以在其他的模組中被調用執行。除了當WinRunner工具識別到一個“call”語句時,主模組會被動態地被編譯為機器代碼。例如:
call cso_init();
call( "C:\\MyAppFolder\\" & "app_init" );
編譯模組被載入到記憶體中以便其他模組引用。
reload ("C:\\MyAppFolder\\" & "flt_lib") 或load ("C:\\MyAppFolder\\" & "flt_lib");
數據驅動測試(data driven tests)
當你測試你的應用程式時,你或許想檢查它如何執行有著大量數據集的相同操作。你可以用一個運行10次的循環來創建一個數據驅動測試:每次循環運行時,它由不同的數據集驅動。為了使WinRunner工具 能夠使用數據來驅動測試,你必須將數據連線到所要驅動的測試腳本。這就叫參數化(parameterizing)你的測試。數據存儲在一個數據表格(data table)中。你可以手工執行這些操作,或使用DataDriver Wizard來參數化你的測試腳本並儲存數據在數據表格中。

數據驅動測試的步驟如下:

・ 創建一測試腳本
・ 轉換為數據驅動的測試腳本並準備一個資料庫
・ 運行測試腳本
・ 分析測試結果
無法識別GUI對象的原因
WinRunner工具會由於以下多種原因導致不能識別GUI對象。
・不是標準的Windows對象
・沒有安裝所需的Add-In
・如果所使用的瀏覽器和WinRunner工具的版本不兼容,GUI Map編輯器將不能認識在瀏覽器視窗中顯示的任何對象
啟動檔案(start up file)
在General Options ->Environment-> Startup文本框中,選擇或輸入你希望作為啟動檔案的測試腳本
輸入測試腳本的相關信息
在創建一個測試腳本之前,你可以在Test Properties-> General和 Description中輸入和腳本相關的信息,如被測功能的類型,測試腳本的詳細描述,引用的相關功能說明書文檔
如何處理定製對象(custom objects)?
定製對象是不屬於WinRunner工具所使用的標準類之一的任何GUI 對象。WinRunner工具學習此類的對象為generic "object"類。WinRunner工具利用obj_mouse_語句來記錄在定製對象的操作。
如果定製對象和一個標準的對象很相似,你可以映射它為標準類別之一。你也可以在環境判斷測試(Context Sensitive testing)時配置WinRunner工具用於識別定製對象的屬性。
什麼是虛擬對象(virtual object)並且如何使用它們?
應用程式可能會含有一些外觀和行為和GUI對象相似的點陣圖。WinRunner工具利用win_mouse_click 語句來記錄操作。通過定義一個點陣圖對象為虛擬對象,當你錄製並運行測試時,你可以教WinRunner工具將它象一個GUI對象一樣對待。

相關詞條

相關搜尋

熱門詞條

聯絡我們