QTP - 错误处理
QTP 中有多种处理错误的方法。使用 QTP 时可能会遇到三种类型的错误。它们是 −
- 语法错误
- 逻辑错误
- 运行时错误
错误类型
语法错误
语法错误是拼写错误或与 VBscripting 语言语法不符的代码片段。语法错误发生在代码编译时,在错误修复之前无法执行。
要验证语法,请使用键盘快捷键 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 对象 − Error 对象是 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. 报告对象 − 报告对象帮助我们将事件报告给运行结果。它帮助我们确定相关操作/步骤是否通过/失败。
'Syntax: Reporter.ReportEventEventStatus, ReportStepName, Details, [ImageFilePath] 'Example Reporter.ReportEvent micFail, "Login", "User is unable to Login."