軟件測試中WinRunner的場(chǎng)景恢復
Recovery Scenarios——Simple 舉例
在測試過(guò)程中,經(jīng)常發(fā)生不能預期的事件,錯誤和應用程序崩潰。針對這些問(wèn)題,WR提供了恢復場(chǎng)景的功能(Recovery Scenarios).在Tools > Recovery Manager 中提供了恢復向導(Recovery Wizard),它可以指引用戶(hù)完成定義恢復場(chǎng)景的全過(guò)程。該向導包括兩種恢復場(chǎng)景類(lèi)型:簡(jiǎn)單恢復(Simple)和復雜恢復(Compound)。本文僅針對簡(jiǎn)單恢復(Simple)來(lái)舉例說(shuō)明。對于Simple來(lái)說(shuō),既可以通過(guò)使用恢復向導完成,也可以通過(guò)使用tsl語(yǔ)句完成恢復操作。下面以WR自帶的Flight 4A為例,在彈出窗口 Flight Reservations時(shí),自動(dòng)關(guān)閉該窗口,繼續進(jìn)行測試。
首先,假設我們已經(jīng)錄制一段腳本(aa)如下:(該代碼沒(méi)有填寫(xiě) Date of Flight,這將導致彈出提示窗口 Flight Reservations)
# Flight Reservation
set_window ("Flight Reservation", 3);
button_press ("Button_0");
list_select_item ("Fly From:", "Denver"); # Item Number 0;
# Flight Reservation
set_window ("Flight Reservation", 1);
list_select_item ("Fly To:", "London"); # Item Number 2;
button_press ("FLIGHT");
# Flight Reservation
set_window ("Flight Reservation", 4);
edit_set ("Name:", "123");
下面我們對彈出窗口 Flight Reservations進(jìn)行處理:
1 使用恢復向導的步驟:
1)打開(kāi) Recovery Wizard,選擇 Popup event 〉next;
2)在Scenario Name框中輸入場(chǎng)景名稱(chēng),此處以 popup_win 為名,并輸入Description(可選),next;
3)單擊 手型 選擇彈出窗口 Flight Reservations, next;
4)此時(shí)在恢復操作(Recovery Operations)中有三個(gè)選項:Click button, Close active window,Exceute a recovery function.
a如果選擇 Click button,那么就單擊 手型 選擇彈出窗口 Flight Reservations 中的 “確定”按鈕, next;
b可以選擇 Close active window, next;
c如果選擇Exceute a recovery function,那么需要鍵入恢復功能的名稱(chēng),然后單擊 Define recovery function ,定義恢復功能。在Recovery Function 中輸入如下代碼:
if( win_exists("Flight Reservations",20 ) == E_OK){
set_window("Flight Reservations", 10);
report_msg("popup win exists");
#win_close("Flight Reservations");
button_press("確定");
}
exception_on("popup_win");
此時(shí),會(huì )提示需要將該函數保存在一個(gè)Compiled Module中,并在需要執行恢復操作的腳本中加載該模塊。此處我們假設將該模塊命名為 popupException.然后在腳本 aa 的開(kāi)始處加上 load(".\\popupException") 即可;
5)單擊 Finish。
完成上面步驟后,就可在測試運行時(shí)自動(dòng)關(guān)閉該彈出窗口,繼續進(jìn)行測試。
2 使用tsl語(yǔ)句定義
1)定義一個(gè) Compiled Module,命名為 tsl_pop_close,代碼如下:
public function popupException(in window)
{
if( win_exists("Flight Reservations",20 ) == E_OK){
set_window("Flight Reservations", 10);
report_msg("popup win exists");
#win_close("Flight Reservations");
button_press("確定");
}
exception_on("popup_win");
}
2)在腳本 aa 的開(kāi)始處,添加如下代碼:
load(".\\popupException");
define_popup_exception("tsl_pop_close","popupException","Flight Reservations");
exception_on("tsl_pop_close");
即可。
需要注意的是:無(wú)論使用向導,還是tsl語(yǔ)句,Flight Reservations必須在測試腳本的GUI文件中,否則不能正常運行。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/