QTP – 错误处理

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 对象– 错误对象是 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. 使用退出语句– 退出语句可以与 Err 对象一起使用,以根据 Err.Number 值退出测试、操作或迭代。让我们详细看看这些 Exit 语句中的每一个。

  • ExitTest – 从整个 QTP 测试中退出,无论运行时迭代设置是什么。

  • ExitAction – 退出当前操作。

  • ExitActionIteration – 退出操作的当前迭代。

  • ExitTestIteration – 退出 QTP 测试的当前迭代并进行下一次迭代。

5. 恢复场景– 遇到错误时,将根据特定条件触发恢复场景,并在单独的章节中详细介绍。

6. Reporter Object – Reporter Object 帮助我们向运行结果报告事件。它帮助我们确定相关操作/步骤是否通过/失败。

'Syntax: Reporter.ReportEventEventStatus, ReportStepName, Details, 
[ImageFilePath] 

'Example 
Reporter.ReportEvent micFail, "Login", "User is unable to Login."  

觉得文章有用?

点个广告表达一下你的爱意吧 !😁