是否可以在失败时停止vb脚本(在QTP中)?

时间:2013-12-03 19:36:15

标签: vbscript qtp

如果有人可以向我提出以下问题的想法,那将对我有所帮助。 我有一个场景,我的脚本将逐行执行每个测试步骤,并且对于每个测试步骤,它将在html结果页面中报告传递和失败结果。 如果测试步骤结果通过,则将进入下一个测试步骤并继续进行。 类似地,对于失败的情况,它进入下一个测试步骤并执行它。 是否可以在脚本失败时停止脚本?

以下是示例大纲脚本

Call webEdit_check (“google”,”google”,”nametxtbox”,”xxxx”)

 Call Link_check (strbrowser,strpage,strlink)

 Call WebButton_check (strbrowser,strpage,strWebbutton)

因此,根据上面的脚本,它将调用webEdit函数并检查对象是否显示和可见,并将在webEdit文本框中输入值,如果满足所有条件,结果将被写为html结果中的pass。 完成上述功能后,现在将调用链接功能并启动执行。此外,它还会检查对象是否显示。如果成功,将进入下一步。让我们假设链接不可见,此函数的第二步失败,因此结果写为失败并开始执行第三个函数(调用WebButton_check)。我需要的是应该停止整个执行,因为之前的测试步骤失败了。是否有任何函数在后端运行,以停止执行?当测试步骤失败?我的问题有什么解决方案吗? (请注意我有多种情况,因此“退出测试/退出功能”不适用。) 功能是

webEdit_check

Function webEdit_check(strbrowser,strpage,strwebEdit,strvalue)
Testobject=Browser(strbrowser).Page(strpage).WebEdit(strlink)
If Testobject.exist(10) Then
blnvisible= testobject.getRoproperty(visible)
If blnvisible =True Then
 Testobject.set strvalue
Environment.value(result)=pass
‘It will write result to html page
Call html (“test step is success”,Environment(result))
Else
Environment.value(result)=fail
Call html (“test step is fail”,Environment(result))
End If
Else
Environment.value(result)=fail
Call html (“test object is not visible fail”,Environment(result))
End If
End Function

webEdit_check

Function webEdit_check(strbrowser,strpage,strLink)
Testobject=Browser(strbrowser).Page(strpage).Link(strlink)
If Testobject.exist(10) Then
blnvisible= testobject.getRoproperty(visible)
If blnvisible =True Then
Testobject.click
Environment.value(result)=pass
‘It will write result to html page
Call html (“test step is success”,Environment(result))
Else
Environment.value(result)=fail
Call html (“test step is fail”,Environment(result))
End If
Else
Environment.value(result)=fail
Call html (“test object is not visible fail”,Environment(result))
End If
End Function  

WebButton_check

Function WebButton_check(strbrowser,strpage,strWebButton)
Testobject=Browser(strbrowser).Page(strpage).WebButton(strWebButton)
If Testobject.exist(10) Then
blnvisible= testobject.getRoproperty(visible)
If blnvisible =True Then
 Testobject.click
 Environment.value(result)=pass
‘It will write result to html page
 Call html (“test step is success”,Environment(result))
Else
Environment.value(result)=fail
 Call html (“test step is fail”,Environment(result))
 End If
Else
Environment.value(result)=fail
Call html (“test object is not visible fail”,Environment(result))
End If
End Function

(strverify,结果)

Function (strverify,Result)
If Environment(result)=pass Then
Td.write(<td(strverify)/>td<xxx><td(Result)/>td) 
'(please note this is sample, which I typed, it’s just for concept)
 Else
 Td.write(<td(strverify)/>td<xxx><td(Result)/>td)
 End If
 End Function

如果可能的话,请发邮件(visitjaga@gmail.com)我在办公室的解决方案我限制访问外部网站。我不能马上检查。通过20天,我已经被这个问题所困扰。 感谢和放大器;问候 Jagadeesh Mani visitjaga@gmail.com

3 个答案:

答案 0 :(得分:1)

可以试试这个

On Error Resume Next
Call Link_check (strbrowser,strpage,strlink)
Err.Raise 6   ' Raise an overflow error.
MsgBox "Error # " & CStr(Err.Number) & " " & Err.Description
Err.Clear   ' Clear the error.

在上面如果函数Link_check导致错误,则执行不会向前移动。如果要执行下一个函数,请使用

 On Error Resume Next
Call Link_check (strbrowser,strpage,strlink)
Err.Raise 6   ' Raise an overflow error.
MsgBox "Error # " & CStr(Err.Number) & " " & Err.Description
Err.Clear   ' Clear the error.
On Error goto 0
WebButton_check

我希望这就是你所要求的。

答案 1 :(得分:0)

为了使我的问题更简单,我有15个场景,每个场景下面的每个场景都会被执行

Call WebEdit_check (“google”,”google”,”nametxtbox”,”xxxx”)

Call Link_check (strbrowser,strpage,strlink)

Call WebButton_check (strbrowser,strpage,strWebbutton)

所以如果在执行第3个场景时,下面的步骤功能失败

Call Link_check (strbrowser,strpage,strlink) 它将在html结果文件中写入失败,并且应该停止第3个场景执行,并且应该开始第4个场景的开始。此Err.Raise 6将引发用户预定义的错误消息

答案 2 :(得分:0)

for cnt i=0 to 15  
  Call WebEdit_check (“google”,”google”,”nametxtbox”,”xxxx”)
  Error Resume Next 
  Call Link_check (strbrowser,strpage,strlink)'If the Error Occurs here then add On    Error Resume Next above this statement

  Call WebButton_check (strbrowser,strpage,strWebbutton)

  Err.Clear   'This will clear the error.As,you want to keep this process to run for 15 times for each scenario.just add On Error goto 0
add On Error goto 0
 Next

这可能会有所帮助