QC 运行 QTP 脚本是不带参数的,因此当我们构建自己的框架,需要灵活配置一些东西的时候,需要在QTP中读取外部文件,清除和准备数据时需要操作数据库。
下面是简单实现代码,适用于10.0.
1,读取文本文件
加一个配置文件存放测试 Url 和数据库连接字符串
Dim fso, SettingFile,TestUrl,DBConnectionString
Set fso=CreateObject("scripting.FileSystemObject")
Set SettingFile = fso.openTextFile("C:\AutoTestSettingFile.txt",1,false)
TestUrl=SettingFile.ReadLine
DBConnectionString=SettingFile.ReadLine
SettingFile.Close
2,
查询SQL数据库
Dim cnn,rst
Set cnn = createObject("adodb.connection")
Set rst = createObject("adodb.recordset")
sql1="SELECT * FROM Student"
cnn.Open "provider=SQLOLEDB;User ID=sa;PWD=infoshare;Initial Catalog=SL_LINQDemo;Data Source=CSICNSQL03;database=SL_LINQDemo"
res.Open sql1,cnn
res.MoveFirst
While NOT res.EOF
msgbox res.Fields("StudentName")
res.MoveNext
Wend
执行删除,构建测试环境
Dim cnn,rst
Set cnn = createObject("adodb.connection")
Set rst = createObject("adodb.recordset")
' CLEAR CALENDAR AND EVENTS
sql1 ="DELETE FROM dbo.event WHERE convert(varchar,event_start_datetime,101)='05/03/2010'"
sql2 ="DELETE FROM dbo.calendar_track_date WHERE convert(varchar,track_date,101)='05/03/2010'"
sql3 ="DELETE FROM dbo.calendar_track_detail WHERE convert(varchar,track_date,101)='05/03/2010'"
'CLEAR CASE
sql4 = "DELETE FROM dbo.case_info WHERE case_name LIKE 'CSITESTTEAM%'"
cnn.Open DBConnectionString
rst.Open sql1,cnn,3,2
rst.Open sql2,cnn,3,2
rst.Open sql3,cnn,3,2
rst.Open sql4,cnn,3,2
cnn.close
3,如何读取Excel (陈能技博客转)
所在机器必须安装Excel
arrRange = ReadFile("c:\1.xls","Sheet1")
'Msgbox UBound (arrRange,1)
'Msgbox UBound (arrRange,2)
' 读取其中一个单元格的数据
Msgbox arrRange(1,1)
Function ReadFile(sFileName,sSheetName)
Dim oExcel
Dim oSheet
Dim oRange
Dim arrRange
On Error Resume Next
' 创建Excel应用程序对象
Set oExcel = CreateObject("Excel.Application")
If err.Number <> 0 Then
MsgBox "未能初始化Excel" & vbCrLf & _
"请确保Excel已安装", vbCritical
Exit Function
End If
On Error Goto 0
On Error Resume Next
' 打开Excel文件
oExcel.Workbooks.Open(sFileName)
If err.Number <> 0 Then
MsgBox "未能加载Excel文件" & vbCrLf & _
"请确保Excel文件路径正确或格式正确", vbCritical
Exit Function
End If
On Error Goto 0
' 获取表格的使用范围
Set oSheet = oExcel.Worksheets(sSheetName).UsedRange
' 获取从A列到Z列,从第1行到第1000行的范围i中的所有值
Set oRange = oSheet.Range("A1:Z1000")
'把Excel数据转换到数组
arrRange = oRange.Value
' 关闭工作簿
oExcel.WorkBooks.Item(1).Close
' 退出Excel
oExcel.Quit
Set oExcel = Nothing
' 返回包含Excel数据的数组
ReadFile = arrRange
End Function