天天看點

QTP場景恢複的實踐和總結

 自動化測試的優點在于快速、可靠、可重複、可重用、無疲勞,是對繁重的手工測試的一次解放,适用于回歸測試。自動化還有一個特點是無人值守,測試人員要做的是通過看

  REPORT

  ER來判斷系統是否存在缺陷。當然,腳本執行的過程中或多或少會出現ERROR,由于無人值守的特點,接下來的腳本就會不能運作,這也是為什麼在自動化腳本中彈出框要用POP函數的原因。QTP提供的場景恢複可以解決這個問題,我将自己學習實踐的過程與大家分享,有不合适的地方請大家指正。

   場景恢複可以看做一種嵌入式機制,是QTP腳本的一個可安裝可拆卸零部件,這個零部件的作用就是在機器出現的問題的時候根據我們的訓示執行指定的指令, 記錄案發現場,等腳本跑完的時候遞出報告,供我們分析。我們來看看怎麼制造這個零件,我分享一個出錯時調用函數截圖的場景恢複。我使用的版本是 QTP10.00

  一、設定

  1、建立Recovery Scenario

  首先我們打開Resouces--Recovery Scenario Manager視窗。

QTP場景恢複的實踐和總結

  點選建立場景恢複圖示

QTP場景恢複的實踐和總結

,開始建立一個Recovery Scenario。

  2、選擇觸發方式

  場景恢複機制提供了四種類型的觸發事件,分别用來識别:彈出對話框、對象的特殊屬性值、運作錯誤、應用程式失敗。我這裡選擇Test run error觸發方式。

QTP場景恢複的實踐和總結

  Error選擇Any error,這樣出現任何錯誤都能觸發恢複場景。

  3、設定恢複時操作,這裡我們選擇調用函數。

QTP場景恢複的實踐和總結

  點選下一步,選擇編輯好的函數,我的恢複操作函數如下,函數的作用是将出錯頁面截屏列印到REPORTER。

Function RecoveryFunction1(Object, Method, Arguments, retVal)

Dim datestamp,filename,ResPath

ResPath = Environment("ResultDir")

datestamp = Now()

filename = Environment("TestName")&"_"&datestamp&".png"

filename = Replace(filename,"/","")

filename = Replace(filename,":","")

filename = ResPath + "\" + ""&filename

Desktop.CaptureBitmap filename,True

Reporter.ReportEvent micFail,"場景恢複","報錯截屏",filename

End Function

QTP場景恢複的實踐和總結

  點選下一步,将add another recovery operations選項取消。

QTP場景恢複的實踐和總結

  4、設定腳本恢複運作時的操作,這裡處理下一個Action或者元件中的下一個疊代。

QTP場景恢複的實踐和總結

  到這裡,這個調用函數的場景恢複設定就基本完成了,下一步是給場景恢複取名并儲存。

QTP場景恢複的實踐和總結

  可以選擇将建立的場景恢複添加到目前的TEST或者将其視為預設設定。

  5、關聯場景恢複檔案

  在file>setting>recovery選項中,可以選擇添加或者删除場景設定,就跟resources中國添加關聯函數是一個道理。

QTP場景恢複的實踐和總結

  在test setting裡可以看到我們建立的場景設定已經與目前TEST關聯。

  二、運作

  批量運作腳本實驗場景恢複的作用。

QTP場景恢複的實踐和總結

  在前面的腳本執行出錯時不影響下一個腳本的執行,也即是場景恢複起到了作用,如果沒有這個設定,我們批量運作腳本時就會中斷在出錯的位置,沒有起到自動化應有的作用。我們來看一下運作的報告。

QTP場景恢複的實踐和總結

  SKIP ITERATION,我們設定的恢複操作,執行下一個疊代。

  這個是出錯的截屏,這裡我将密碼設定錯誤觸發了場景恢複。

QTP場景恢複的實踐和總結

  謝謝大家,有不正确的請指正。