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進行讀取,影響系統速度,可以將方法進行拆分,實現代碼優化!