有,我可以在我的執行過程中想到幾個方案,我想了解把手這樣運行時錯誤的最佳實踐。恢復方案或處理大部分的功能本身
還有一個問題,值得在加載函數期間加載所有的恢復場景,或者在函數本身中處理異常。
請提出最佳做法,爲什麼您建議我們需要爲此付出代價。
有,我可以在我的執行過程中想到幾個方案,我想了解把手這樣運行時錯誤的最佳實踐。恢復方案或處理大部分的功能本身
還有一個問題,值得在加載函數期間加載所有的恢復場景,或者在函數本身中處理異常。
請提出最佳做法,爲什麼您建議我們需要爲此付出代價。
根據我對QTP的經驗,最好在函數中直接處理已知的異常場景,併爲未知或意外的異常保留異常處理機制。恢復方案使用額外的計算機資源,可能會降低測試速度,因此只能以有限的方式使用它們來捕捉真正的特殊場景。
由於在QTP命名成立,初學者經常混淆的異常和GUI事件。
確實,彈出式窗口即使「崩潰」腳本執行也不是「例外」。
爲了從失敗的操作中捕獲和恢復,我建議使用「On Error Resume Next ... On Error GoTo 0」語句。
爲了捕捉GUI事件,可能會或可能不會發生,你可以使用QTP恢復方案,但是,正如湯姆·ê提到,每次啓動恢復處理程序使用額外的資源和影響QTP性能。
最好的方法是隻使用你需要的那些,並保持其餘的停用。
一些例子。
1.Catching例外
這樣,如果你有正則表達式的語法錯誤,執行不會停止。
Set objRegEx = New RegExp
objRegEx.Pattern = strRegEx
On Error Resume Next
boolRC = objRegEx.Test(strSrc)
intRC = Err.Number
On Error GoTo 0
If intRC <> 0 Then boolRC = False
Set objRegEx = Nothing
2.Dynamically操作回收處理
intPos = Recovery.GetScenarioPosition("API\Exceptions\AppExceptions.qrs", "Recovery_on_Error1")
''# You can store intPos (position in QTP's qrs file) for all handlers during initialization
Recovery.SetScenarioStatus intPos, boolState ''# Parameterize boolState as True or False
''# Enable or disable handlers this way. Disabled handler does not consume QTP resources.
謝謝
阿爾伯特Gareev
http://automation-beyond.com/