HP UFT/QTP 14.00,导入 CSV 并维护数据 sheet 中的值
HP UFT/QTP 14.00, import CSV and maintain the values in data sheet
我正在从 csv 文件导入一些数据,这是数据:
*file.csv
UserName, EmailId, PhoneNumber
Antonio, anto@gmail.com, 1234567890
Oscar, osc@yahoo.com, 9999999999
Luis,lu@hotmail.com,8888888
我有一个调用此文件的函数:
'************************************************************
Function ImportCsvFiletoDatatable(CsvFilePath,SheetName,HeaderDelimiter)
Dim filePath
Dim fso
Dim f
Dim fData
Dim arrData
Dim CsvValue
Dim CsvSheet
Dim CsvFirstLine
Dim CsvColumns
Dim ColumnIndex
Dim rIndex
Dim cIndex
filePath=CsvFilePath 'Specify file Path
'Open CSV File using File System Object
Set fso=createobject("scripting.filesystemobject")
Set f = fso.OpenTextFile(filePath)
CsvFirstLine=f.readline 'Treating like first line is the column names
CsvColumns=split(CsvFirstLine,HeaderDelimiter) 'Split the line using HeaderDelimiter
Set CsvSheet=DataTable.GetSheet(SheetName) 'Get the Specified sheet
'Add the splitted values as Datatable Columns
For ColumnIndex=lbound(CsvColumns) to ubound(CsvColumns)
CsvSheet.addparameter CsvColumns(ColumnIndex),""
Next
While not f.AtEndOfStream
rIndex=f.Line-1 'Specify Row index
fData=f.ReadLine ' Read CSV File Line
arrData=split(fData,",") 'Split the line
cIndex=1 'Specify Column Index
CsvSheet.SetCurrentRow(rIndex) 'Set Row in the Datatable
' Add values in Datatable
For Each CsvValue In arrData
CsvSheet.getparameter(cIndex).value=CsvValue
cIndex=cIndex+1
Next
Wend
f.Close
Set fso=Nothing
End Function
'************************************************************
效果很好,但信息不稳定,我无法管理或使用这些数据。
有人知道如何保留数据中的数据sheet,虽然离开了UFT?
Dim objQtApp, strXlsPath
strXlsPath = Environment("TestDir") & "\Default.xls"
Set objQtApp = CreateObject("QuickTest.Application")
DataTable.Export strXlsPath
objQtApp.Test.DataTable.Import strXlsPath
Set objQtApp = Nothing
设计时数据表位于 Default.xls 中。当您打开测试用例或如果您从 UFT 手动编辑它时,将加载它。如果您想以编程方式刷新它,请使用上面的代码片段。导出,然后使用自动化对象导入。
当然是放在一个方法里面,你方便的地方就可以调用。
如果您希望 UFT 自动处理它,请创建一个新的 Class 和它的单例实例。
实现 class 的 Class_Terminate 方法并将代码放在那里。当 UFT 因崩溃或正常测试 运行 结束而退出时,它会尝试清理在 运行 期间创建的所有对象。这个对象将在其中,作为自动清理过程的一部分,您将把 运行time 数据表保存到设计时数据表中(Default.xls),然后重新加载它。
我正在从 csv 文件导入一些数据,这是数据:
*file.csv
UserName, EmailId, PhoneNumber
Antonio, anto@gmail.com, 1234567890
Oscar, osc@yahoo.com, 9999999999
Luis,lu@hotmail.com,8888888
我有一个调用此文件的函数:
'************************************************************
Function ImportCsvFiletoDatatable(CsvFilePath,SheetName,HeaderDelimiter)
Dim filePath
Dim fso
Dim f
Dim fData
Dim arrData
Dim CsvValue
Dim CsvSheet
Dim CsvFirstLine
Dim CsvColumns
Dim ColumnIndex
Dim rIndex
Dim cIndex
filePath=CsvFilePath 'Specify file Path
'Open CSV File using File System Object
Set fso=createobject("scripting.filesystemobject")
Set f = fso.OpenTextFile(filePath)
CsvFirstLine=f.readline 'Treating like first line is the column names
CsvColumns=split(CsvFirstLine,HeaderDelimiter) 'Split the line using HeaderDelimiter
Set CsvSheet=DataTable.GetSheet(SheetName) 'Get the Specified sheet
'Add the splitted values as Datatable Columns
For ColumnIndex=lbound(CsvColumns) to ubound(CsvColumns)
CsvSheet.addparameter CsvColumns(ColumnIndex),""
Next
While not f.AtEndOfStream
rIndex=f.Line-1 'Specify Row index
fData=f.ReadLine ' Read CSV File Line
arrData=split(fData,",") 'Split the line
cIndex=1 'Specify Column Index
CsvSheet.SetCurrentRow(rIndex) 'Set Row in the Datatable
' Add values in Datatable
For Each CsvValue In arrData
CsvSheet.getparameter(cIndex).value=CsvValue
cIndex=cIndex+1
Next
Wend
f.Close
Set fso=Nothing
End Function
'************************************************************
效果很好,但信息不稳定,我无法管理或使用这些数据。 有人知道如何保留数据中的数据sheet,虽然离开了UFT?
Dim objQtApp, strXlsPath
strXlsPath = Environment("TestDir") & "\Default.xls"
Set objQtApp = CreateObject("QuickTest.Application")
DataTable.Export strXlsPath
objQtApp.Test.DataTable.Import strXlsPath
Set objQtApp = Nothing
设计时数据表位于 Default.xls 中。当您打开测试用例或如果您从 UFT 手动编辑它时,将加载它。如果您想以编程方式刷新它,请使用上面的代码片段。导出,然后使用自动化对象导入。
当然是放在一个方法里面,你方便的地方就可以调用。
如果您希望 UFT 自动处理它,请创建一个新的 Class 和它的单例实例。
实现 class 的 Class_Terminate 方法并将代码放在那里。当 UFT 因崩溃或正常测试 运行 结束而退出时,它会尝试清理在 运行 期间创建的所有对象。这个对象将在其中,作为自动清理过程的一部分,您将把 运行time 数据表保存到设计时数据表中(Default.xls),然后重新加载它。