
- QTP 教程
- QTP - 首頁
- QTP - 簡介
- QTP - 測試自動化
- QTP - 環境設定
- QTP - 錄製和回放
- QTP - 物件庫
- QTP - 動作
- QTP - 資料表
- QTP - 檢查點
- QTP - 同步
- QTP - 智慧識別
- QTP - 除錯
- QTP - 錯誤處理
- QTP - 恢復方案
- QTP - 環境變數
- QTP - 庫檔案
- QTP - 測試結果
- QTP - GUI 物件
- QTP - 虛擬物件
- QTP - 訪問資料庫
- QTP - 使用 XML
- QTP - 描述性程式設計
- QTP - 自動化物件模型
- QTP - 框架
- QTP - 框架設計
- QTP 有用資源
- QTP - 問答
- QTP - 快速指南
- QTP - 有用資源
- QTP - 討論
QTP - 錯誤處理
在 QTP 中處理錯誤的方法有很多種。在使用 QTP 時,可能會遇到三種類型的錯誤:
- 語法錯誤
- 邏輯錯誤
- 執行時錯誤
錯誤型別
語法錯誤
語法錯誤是指程式碼中的打字錯誤或不符合 VBScript 語法規則的程式碼片段。語法錯誤在程式碼編譯時發生,在修復錯誤之前無法執行。
要驗證語法,可以使用鍵盤快捷鍵 Ctrl+F7,結果將如下所示。如果視窗未顯示,可以導航到“檢視”→“錯誤”。

邏輯錯誤
如果指令碼在語法上正確,但產生意外的結果,則稱為邏輯錯誤。邏輯錯誤通常不會中斷執行,但會產生不正確的結果。邏輯錯誤可能由於各種原因發生,例如:錯誤的假設或對需求的誤解,有時是不正確的程式邏輯(使用 do-while 而不是 do-Until)或無限迴圈。
檢測邏輯錯誤的一種方法是進行同行評審,並驗證 QTP 輸出檔案/結果檔案,以確保工具按預期執行。
執行時錯誤
顧名思義,這種錯誤發生在執行時。這種錯誤的原因是指令碼嘗試執行某些操作但無法執行,指令碼通常會停止,因為它無法繼續執行。執行時錯誤的典型示例包括:
- 檔案未找到,但指令碼嘗試讀取檔案
- 物件未找到,但指令碼嘗試操作該特定物件
- 將數字除以零
- 訪問陣列元素時陣列索引超出範圍
處理執行時錯誤
有多種方法可以處理程式碼中的錯誤。
1. 使用測試設定 - 透過導航到“檔案”>>“設定”>>“執行”選項卡(如下所示)可以在測試設定中定義錯誤處理。我們可以選擇任何指定的設定並單擊“確定”。

2. 使用 On Error 語句 - ‘On Error’ 語句用於通知 VBScript 引擎處理執行時錯誤的意圖,而不是允許 VBScript 引擎顯示不友好的錯誤訊息。
On Error Resume Next - On Error Resume Next 通知 VBScript 引擎在遇到錯誤時處理執行下一行程式碼。
On error Goto 0 - 這有助於測試人員關閉錯誤處理。
3. 使用 Err 物件 - Err 物件是 VBScript 中的內建物件,它捕獲執行時錯誤號和錯誤描述,使我們能夠輕鬆地除錯程式碼。
Err.Number - Number 屬性返回或設定一個數值,用於指定錯誤。如果 Err.Number 值為 0,則表示沒有發生錯誤。
Err.Description - Description 屬性返回或設定關於錯誤的簡短描述。
Err.Clear - Clear 方法重置 Err 物件並清除與其關聯的所有先前值。
示例
'Call the function to Add two Numbers Call Addition(num1,num2) Function Addition(a,b) On error resume next If NOT IsNumeric(a) or IsNumeric(b) Then Print "Error number is " & err.number & " and description is : " & err.description Err.Clear Exit Function End If Addition = a+b 'disables error handling On Error Goto 0 End function
4. 使用 Exit 語句 - Exit 語句可以與 Err 物件一起使用,根據 Err.Number 值退出測試、操作或迭代。讓我們詳細瞭解每個 Exit 語句。
ExitTest - 退出整個 QTP 測試,無論執行時迭代設定是什麼。
ExitAction - 退出當前動作。
ExitActionIteration - 退出動作的當前迭代。
ExitTestIteration - 退出 QTP 測試的當前迭代並繼續下一個迭代。
5. 恢復方案 - 遇到錯誤時,恢復方案將根據某些條件觸發,並在單獨的章節中詳細介紹。
6. Reporter 物件 - Reporter 物件幫助我們將事件報告到執行結果。它有助於我們確定相關操作/步驟是透過/失敗。
'Syntax: Reporter.ReportEventEventStatus, ReportStepName, Details, [ImageFilePath] 'Example Reporter.ReportEvent micFail, "Login", "User is unable to Login."