我对QTP / UFT比较陌生。我正在编写测试,需要在同一测试中使用Global和Local Data Sheet中的数据。
我的for
循环类似于:
Datatable.GetSheet("Global")
RowCount = Datatable.GetRowCount
For Cntr = 1 to RowCount
Datatable.SetCurrentRow(Cntr)
msgbox Datatable("Form", dtGlobalSheet) 'Form is my column Name from Global Data Sheet'
Datatable.GetSheet("Action1")
RowCount2 = Datatable.GetRowCount
For Cntr2 = 1 to RowCount2
Datatable.SetCurrentRow(Cntr2)
msgbox Datatable("Number", dtGlobalSheet) 'Number is my column Name from Action1 Data Sheet'
Next
Next
我的列值从两张纸上搞砸了。
答案 0 :(得分:1)
您需要将数据表分配给变量,以便更好地使用它。
Datatable.GetSheet("Global")
但未将其分配到任何地方。 Datatable.GetRowCount
时,实际上并没有告诉UFT从哪个数据表获取行数,这可能是您的问题之一。msgbox Datatable("Number", dtGlobalSheet)
,但您应该使用msgbox Datatable("Number", dtLocalSheet)
(假设您已在代码中的某处分配了这些变量)。检查这个可能的解决方案(未经测试):
Dim dtGlobal : Set dtGlobal = Datatable.GetSheet("Global")
Dim dtLocal : Set dtLocal = Datatable.GetSheet("Action1")
RowCount = dtGlobal.GetRowCount
For Cntr = 1 to RowCount
'Working with global datatable
dtGlobal.SetCurrentRow(Cntr)
msgbox dtGlobal.GetParameter("Form") 'Form is my column Name from Global Data Sheet'
'Working with local datatable
RowCount2 = dtLocal.GetRowCount
For Cntr2 = 1 to RowCount2
dtLocal.SetCurrentRow(Cntr2)
msgbox dtLocal.GetParameter("Number") 'Number is my column Name from Action1 Data Sheet'
Next
Next
PS。:在准确定义了哪些数据来自哪个数据表后,您可能需要检查循环以确保逻辑正确,因为我没有检查该部分。如果这对您有用,请告诉我。
快乐的编码。