在QTP中有多种处理错误的方法.在使用QTP时,有三种可能的错误类型,一种会遇到.它们是 :
语法错误
逻辑错误
运行时错误
语法错误是拼写错误或一段代码,不能用VBscripting语言语法确认.语法错误在编译代码时发生,并且在错误修复之前无法执行.
要验证语法,请使用键盘快捷键Ctrl + F7,结果显示如图所示下面.如果没有显示窗口,可以导航到"View" → "错误".
如果脚本语法正确但产生意外结果,则称为逻辑错误.逻辑错误通常不会中断执行但会产生错误的结果.逻辑错误可能由于各种原因,即错误的假设或对需求的误解以及有时不正确的程序逻辑(使用do-while而不是do-Until)或无限循环而发生.
检测逻辑错误的方法之一是执行对等检查并验证QTP输出文件/结果文件,以确保该工具按预期方式执行.
如名称所示,此类错误在运行时发生.出现这种错误的原因是尝试执行某些操作的脚本无法执行此操作,并且脚本通常会停止,因为它无法继续执行.运行时错误的经典示例是 :
找不到文件,但脚本试图读取文件
未找到对象,但脚本正在尝试对该特定对象执行操作
将数字除以零
数组索引超出范围访问数组元素时
有多种方法可以处理代码中的错误.
1.使用测试设置 : 可以通过导航到"文件">>来定义错误处理测试设置. "设置">> "运行"选项卡如下所示.我们可以选择任何指定的设置,然后单击"确定".
2.使用On Error Statement : "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帮助我们向运行结果报告事件.它有助于我们确定相关的操作/步骤是否通过.
'Syntax: Reporter.ReportEventEventStatus, ReportStepName, Details, [ImageFilePath] 'Example Reporter.ReportEvent micFail, "Login", "User is unable to Login."