📅  最后修改于: 2023-12-03 15:34:34.551000             🧑  作者: Mango
在测试过程中,不可避免地会出现各种各样类型的错误,如对象无法识别、超时等等。 在使用 QTP 进行自动化测试时,我们需要学习如何捕获和处理这些错误,在保证测试质量和稳定性的同时还能提高测试效率。
QTP 中的错误可以归类为以下 4 种类型:
在 QTP 中,我们可以使用 On Error
语句来捕获运行时错误和有条件的运行时错误。 当发生运行时错误时,QTP 将跳过错误语句并继续执行下一条语句。 我们可以在捕获错误之后执行某些操作,如记录错误日志、截图等。
以下是一个示例:
On Error Resume Next
Browser("Google").Page("Google").WebEdit("q").Set "QTP"
Browser("Google").Page("Google").WebButton("Search").Click
If err.Number <> 0 Then
ReportEvent micWarning, "Search", "Search button not found"
End If
在上述示例中,我们使用 On Error Resume Next
语句来捕获运行时错误。 如果在第二行代码中无法找到“Google”浏览器,则会跳过该行并继续运行下一条语句。 如果发生错误,我们将使用 ReportEvent
函数记录错误信息。
除了使用 On Error
语句之外,我们还可以使用 Err.Raise
语句来自行引发错误。
以下是一个示例:
If Browser("Google").Page("Google").WebEdit("q").Exist(10) Then
' Do something
Else
Err.Raise 101, , "Search box not found"
End If
在上述示例中,我们使用 Exist
方法检查搜索框是否存在。 如果搜索框不存在,则会引发错误,并且使用 Err.Raise
语句自行定义错误消息。
当 QTP 运行结束时,任何未处理的错误将被视为清理错误。我们可以使用 On Error Resume Next
语句方便地处理清理错误。 我们可以将清理错误信息记录在错误日志中,以帮助我们确定发生了什么问题。
以下是一个示例:
On Error Resume Next
Browser("Google").Close
Set Browser = Nothing
If err.Number <> 0 Then
ReportEvent micWarning, "Cleanup", "Error closing browser"
End If
在上述示例中,我们使用 On Error Resume Next
语句来捕获清理错误。 如果关闭浏览器失败,则会跳过该行并继续执行下一条语句。 如果发生错误,我们将使用 ReportEvent
函数记录错误信息。
错误处理是自动化测试的重要组成部分,可以大大提高测试质量和效率。 在 QTP 中,我们可以使用 On Error
和 Err.Raise
语句来捕获和处理各种类型的错误并记录错误信息。 除此之外,我们还可以使用 ReportEvent
函数将错误消息记录在日志中,以帮助我们确定发生了什么问题。