UFT - 如何检查函数是否执行没有错误

时间:2017-03-10 06:07:19

标签: vbscript automation qtp

如果要验证我调用的函数是否完全执行,如何编写代码?

例如

Call Func_Import()

'-insert code to verify that Func_Import() was ran completely-

Call Func_OpenAUT()

'-verify that Func_OpenAUT() was ran completely-

Call Func_Login()

'-verify that Func_Login() was ran completely-
提前谢谢, P

2 个答案:

答案 0 :(得分:0)

你的问题太抽象了,无法提供确切的答案。但是,根据我的理解,这里有可能的解决方案,我能想到

方法1

Public Function Func_Import()
   Dim blnReturnValue : blnReturnValue = True
   If blnReturnValue = True Then blnReturnValue = Do Some Actions
   If blnReturnValue = True Then blnReturnValue = Do Some More Actions
   Func_Import = blnReturnValue
End Function

如果返回值为true,则执行所有其他步骤,其中一些已经破坏。

方法2

UFT Inbuild方法 - GetLastError()语句。

Look Here

答案 1 :(得分:0)

这是UFT中的一个经典问题,如何检测失败,并正确回答您的问题,我们需要了解以下两个场景

1)如果您知道如何处理故障或者您的目标是重新开始执行当前的测试/测试迭代,那么您可以使用恢复方案并将其设置为在每个错误上从函数库中调用函数,这将确保在每次失败后调用该函数,然后你可以做任何你想做的事。

现在这只有在你遵循UFT提供的执行框架时才有效,而你只专注于错误,而不是执行流程失败。

2)如果您已经创建了自己的框架,那么选项1可能对您没有帮助,因为您的测试将由输入表控制,并且您的框架必须在执行期间切换到下一个测试用例。所以我为解决这个问题所做的是,我已经创建了一个隧道函数,所有其他函数调用都是通过这个函数调用的,所以在你的情况下,OpenAUT和Login将是这个隧道函数中的函数调用,如下所示< / p>

Public Function CallAppropriateFunctions()

    On Error Resume Next

    Select Case expression
        Case "OPENUAT"
            OpenAut()
        Case "LoginAPP"
            LoginApp()
    End Select

    If Err.Number <> 0 Then
        ''Control will come here on error
    End If

End Function

因此,如果这些函数中的任何一个出现错误,那么控制将进入If条件(因为接下来的错误恢复)。

只有您必须确保OpenAut()LoginApp()不应该有“错误恢复”,这应该可以解决您的问题。

现在这将确保在执行过程中没有错误,但是在功能中仍然可能出现故障,例如,如果您单击登录并且用户标识和密码错误,则登录将失败,为此您必须实现函数的返回值,接下来我要做的就是从函数中返回true或false,以便在执行期间做出其他必要的决定

所以你的openAUT函数看起来应该是

public function OPenUAT()

    ''Open App
    if APP.Exist then
        OPenUAT = true
    else
        OPenUAT = false
    End If

End Function 

,您的callAppropriatefunction将成为

Public Function CallAppropriateFunctions()

    On Error Resume Next
    Dim Results
    Select Case expression
        Case "OPENUAT"
            Results = OpenAut()
        Case "LoginAPP"
            Results = LoginApp()
    End Select

    If Err.Number <> 0 Then
        ''Control will come here on error
    End If

    If Results = false then
        '' Your function executed successfully but application produced a different '''''''result
    End If

End Function

您可以阅读以下文章以了解选项2

https://sumeetkushwah.com/2014/08/12/implementing-try-catch-functionality-in-qtpuft/