QTP / VBScript - 在第3次迭代期间不传递函数返回值

时间:2014-10-16 16:34:42

标签: vbscript qtp

我有一个函数来获取我的测试的数据表值,基于函数返回值(True或False),我正在做后续操作。函数返回值在前两次运行中成功传递,并在第3次运行期间返回空值。函数的返回值将保持不变,直到它退出函数。

请参阅下面的示例函数调用和代码。前两个函数调用Apple和Orange工作正常。第三次函数调用Banana测试失败。

调用Sample_Function(1," Apple")

调用Sample_Function(2," Orange")

调用Sample_Function(3," Banana")

Function Sample_Function(RowId,SearchCriteria)
    Dim DataStatus
    DataStatus = Retrieve_Excel_Data(RowId)
    If DataStatus = True Then 'It returns a empty value during 3rd run
      Msgbox "Sucess"
    Else
      Msgbox "Failed"
    End If
End Function

Function Retrieve_Excel_Data(RowId)
    Dim XlsStatus, Source, Target, RowCount
    XlsStatus = False
    DataTable.AddSheet(Target)  
    DataTable.ImportSheet "C:\a.xls", Source, Target
    RowCount = DataTable.GetSheet(PO_Target_SheetName).GetRowCount
    If RowCount < 1 then
         XlsStatus = True
         Retrieve_Excel_Data = XlsStatus
    Else
         Retrieve_Excel_Data = XlsStatus
    End If
End Function`

1 个答案:

答案 0 :(得分:1)

在第3次运行时单步执行代码会发生什么?如果您打开On Error Resume Next并且在第3次尝试时执行Retrieve_Excel_Data函数时出错,则会导致调用例程(在本例中为Sample_Function)移动到下一个代码行。这可能导致变量DataStatus无法填充。