51测试论坛,已经注册有一段时间,一直想写点什么,耐于时间限制,一直没写什么个人的一些小方法,今天刚好有时间,机不可失!!!
最近刚刚有在忙一个自动化的项目,本想利用selenium进行自动化脚本的编写,怎奈产品属于弹出框一类的东西,无法进行元素定位,就用了QTP进行自动化脚本的元素定位,脚本编写。并对脚本进行调试。为了实现数据和方法分离,便于后期维护和管理,需要用到Excel与脚本进行数据交互,原打算用数据库实现的,可惜小编能力有限(数据库没研究好,只是一些基本的操作),没能去做,在此就用了Excel进行数据的存取。
前期规划,Excel只取两列作为数据存取列,一列用于数据的表示,作为想要获取的数据的数据引导,在方法中可以调用数据标识列中的名称进行想要获取数据的唯一引导。
具体代码实现,可见下方:
'输入:
' sFileName:Excel 文件
' sSheetName: 表单名称
' lookupstr:寻找的数据
'返回:
' 包含Excel 数据的数组
Function ReadFile(sFileName,sSheetName)
Dim oExcelapp
Dim oExcel
Dim oSheet
' Dim oRange
' Dim arrRange
On Error resume next
'创建EXCEL 应用程序对象
Set oExcelapp=CreateObject("Excel.Application")
oExcelapp.Visible = True
If err.number <>0 Then
msgbox "未能初始化Excel"&vbCrLf&_
"请确保Excel已安装", vbcritical
Exit function
End If
On error goto 0
On Error resume next
'打开Excel文件
set oExcel=oExcelapp.Workbooks.Open(sFileName)
oExcel.Worksheets(sSheetName).Activate
If err.number <>0 Then
msgbox "未能加载Excel文件"&vbCrLf&_
"请确保Excel文件路径正确或格式正确", vbcritical
Exit function
End If
On error goto 0
'获取表的使用范围
'Set oSheet=oExcel.Worksheets(sSheetName).UsedRange
Set oSheet=oExcel.Worksheets(sSheetName).UsedRange
Set oRange=oSheet.Range("A1:Z200")
arrRange=oRange.value
oExcelapp.Workbooks.Close
Window("text:=Microsoft Excel").Close
ReadFile=arrRange
'无用语句
'Set oSheet=oExcel.Worksheets(sSheetName)
'For i=1 to 100
'If oSheet.cell(i,1).value= lookupstr Then
'ReadFile=oSheet.cell(i,2).value
'Exit function
'End If
'Next
'关闭工作薄
'oExcelapp.Workbooks.Item(1).Close
'退出Excel
'oExcelapp.Quit
'Set oExcelapp=nothing
End Function
'指定参数取用
'输入:
' ObjName:测试对象名称
' 返回:测试对象名称对应的字符串
Function GetTestObject(objName)
Dim objArray
objArray=ReadFile("D:\new.xls","sheet1")
For i=1 to UBound(objArray,1)
If objArray(i,1)=objName Then
GetTestObject=objArray(i,2)
Exit function
End If
Next
End Function
以上代码,细心的朋友可能会发现,代码存在一点瑕疵,就是每次调用函数GetTestObject都会对Excel进行读取,影响系统速度,可以将方法进行拆分,实现代码优化!
转载于:https://blog.51cto.com/yidishui/1182861