QTP的一点总结,希望大家有用
QTP的一点总结,希望大家有用
Desktop.CaptureBitmap filename//filename为桌面上的文件的名字,这个函数主要是用来抓桌面上的图象
将图放到word中
Set Word = CreateObject("Word.Application")
oWord.DisplayAlerts = False
oWord.Visible = False
oWord.documents.open "testWordDoc.doc"
Set Doc = oWord.ActiveDocument
Set Range = oDoc.content
oRange.ParagraphFormat.Alignment = 0
oRange.insertafter vbcrlf '& " " & vbcrlf
oRange.collapse(0)
oRange.InlineShapes.AddPicture "ImagePath.bmp", False, True
oWord.ActiveDocument.Save
oWord.Application.Quit True
Set Range = Nothing
Set Doc = Nothing
Set Word = Nothing
数据库连接方法
第一种方法:
做实验的时候需要把Cmd.activeconnection="Provider=SQLOLEDB.1;Password=;Persist Security Info=True;User ID=sa;Initial Catalog=pubs;修改成自己计算机上的信息,用粗体表示了.用的是sql server数据库
Dim res,cmd,sql
Set Res=createobject("adodb.recordset")
Set Cmd=createobject("adodb.command")
Cmd.activeconnection="Provider=SQLOLEDB.1;Password=;Persist Security Info=True;User ID=sa;Initial Catalog=pubs;Data Source=192.168.0.69"
Cmd.CommandType = 1
sql="select emp_id,fname from dbo.employee"
Cmd.CommandText = sql
Set res = Cmd.Execute()
i=1
While not res.eof
logid = res("emp_id").value
logname=res("fname").value
print logid
pint logname
i=i+1
res.movenext
wend
Set res = nothing
Set cmd.ActiveConnection = nothing
Set Cmd= nothing
第二种方法:
set conn=createobject("adodb.connection")
set rs=createobject("adodb.recordset")
set rs1=createobject("adodb.recordset")
conn.open= "Provider=OraOLEDB.Oracle.1;Password=XXX;Persist Security Info=True;User ID=XXX;SERVER=XXX;Data Source=XX;DBQ=XX;"
sql="你的SQL语句"
rs.open sql,conn
'创建excel的对象
Set ExcelObj = CreateObject("Excel.Application")
'指定一个execl的格式,这个需要我们事先定制好
aatype="F:\templet.xls"
'打开excel
ExcelObj.Workbooks.Open(aatype)
'设置操作的工作表
Set NewSheet = ExcelObj.Sheets.Item(2)
'以下是数据库操作
Dim rs,sq,pkey
set conn=createobject("adodb.connection")
set rs=createobject("adodb.recordset")
set rs1=createobject("adodb.recordset")
conn.open= "Provider=OraOLEDB.Oracle.1;Password=*;Persist Security Info=True;User ID=*;SERVER=*;Data Source=*;DBQ=*;"
sql="select * from table"
rs.open sql,conn
i=1
do while not rs.eof
values1=rs("pkey")
values2=rs("name")
NewSheet.Cells(i+1,1).Value =values1
NewSheet.Cells(i+1,2).Value =values2
i=i+1
rs.movenext
Loop
'保存excel数据
ExcelObj.ActiveWorkbook.Saveas "F:\data.xls"
ExcelObj.Quit
Set ExcelObj = Nothing
rs.close
set rs=nothing
conn.close
set conn=nothing
对EXCEL的操作
Dim Excel,ExcelSheet
Set Excelone=CreateObject("Excel.Application")
Set ExcelSheet=CreateObject("Excel.Sheet")
ExcelSheet.Application.visible=true
ExcelSheet.ActiveSheet.Cells(1,1).value=1
ExcelSheet.ActiveSheet.Cells(1,2).value=2
ExcelSheet.ActiveSheet.Cells(1,3).value=3
Excelone.Saveas "E:\tests.xls"
Excelone.quit
Set ExcelSheet=Nothing
对EXCEL的操作
Set fs=CreateObject("excel.application")
fs.Visible=True
Set excelbook=fs.Workbooks.Add
Set excelsheet=excelbook.worksheets(1)
excelsheet.cells(1,1)="五哥"
excelsheet.saveas "e:\1.xls"
excelsheet.application.quit
fs.Quit
对EXCEL的操作
set fs=createobject("excel.application")
fs.visible=true
set excbook=fs.workbooks.open("f:\1.xls")
set excsheet=excbook.worksheet(1)
excsheet.cells(1,1).value="五哥"
excbook.save
fs.quit
网上有些关于如何使用Action参数的文章,不过关于QTP的Test参数和Top-Level Action参数的使用例子几乎没有。
有些人甚至不知道这个参数做什么用的,尤其是Test的output不知道怎么取。
其实它是外部对象传给它的(这个外部对象可以是Quality Center,也可以是vbs这样的驱动程序)。
以下给大家讲解一个关于QuickTest的Flight的例子。
首先,在QTP里录制一段脚本,代码如下:
CODE:
SystemUtil.Run "C:\Program Files\Mercury\QuickTest Professional\samples\flight\app\flight4a.exe","","C:\Program Files\Mercury\QuickTest Professional\samples\flight\app\","open"
Dialog("Login").WinEdit("Agent Name:").Set Parameter("InAction1")
wait 5
Dialog("Login").WinEdit("Agent Name:").Type micTab
Dialog("Login").WinEdit("Password:").SetSecure "4649c633ffc8803c10097292953c6334fde3e923"
Dialog("Login").WinEdit("Password:").Type micReturn
Window("Flight Reservation").Close
Parameter("OutAction1") = True
然后,鼠标选中Keyword View中的Action1,点右键---Action Property,在Parameters的Tab标签下,分别加入:输入参数 InAction1 ,类型String;输出参数 OutAction1,类型 Boolean。如下图。再然后,在QTP的菜单File--->>Settings的Parameters的Tab标签下,分别加入:输入参数 InParam1 ,类型String;输出参数 OutParam1,类型 Boolean。如下图。
接着,鼠标还是选中Keyword View中的Action1,点右键,这次点“Action Call Properties”,在Parameter Values里进行参数化传递设置,把InParam1的值传递给InAction1,把OutAction1的值传递给OutParam1。如下图。
以上设置完毕后,点“保存”,保存到C:\下,存为Test1好了。
最后,在你的硬盘上新建一个vbs文件,文件内容如下:
CODE:
Dim qtApp ,pDefColl,pDef ,rtParams,rtParam
Set qtApp = CreateObject("QuickTest.Application")
qtApp.Launch
qtApp.Visible = True
qtApp.Open "C:\Test1"
Set pDefColl = qtApp.Test.ParameterDefinitions
cnt = pDefColl.Count
Indx = 1
While Indx <= cnt
Set pDef = pDefColl.Item(Indx)
Indx = Indx + 1
Wend
Set rtParams = pDefColl.GetParameters()
Set rtParam = rtParams.Item("InParam1")
rtParam.Value = "songfun"
qtApp.Test.Run , True, rtParams
MsgBox rtParams.Item("OutParam1").Value
做完这步之后,保存这个vbs文件,双击执行这个vbs文件,你会发现它自动启动了QTP,而且进行了自动测试,最后还取到了运行成功与否的布尔值。这就是关于Test、Top-Level Action参数使用的例子,它的参数的整个传递过程是:外部vbs文件 传参数给QuickTest的Test的输入参数InParam1,然后InParam1传参数到InAction1去驱动了Action1的测试,然后通过这个Action1得出了OutAction1的值,然后通过OutAction1传给OutParam1,最后再传回到vbs文件中。示例用MsgBox来打出重新传回到vbs文件中的字符串
新建一个EXCEL表格,并且往里边写入数据
Dim a,b,c
Set a = createobject("excel.application")
a.visible = true
Set b = a.workbooks.add
Set c = b.worksheets(1)
c.cells(1,1) = "1"
c.cells(1,2) = "2"
c.cells(1,3) = "3"
c.saveas "e:\testtwo.xls"
c.application.quit
a.quit
打开一个已经存在的表格,往里边写入数据
set fs=createobject("excel.application")'创建EXCEL对象
fs.visible=true'使EXCEL能被看到
set excbook=fs.workbooks.open("f:\1.xls")'打开F盘下的一个已经存在的1.txt文件
set excsheet=excbook.worksheet(1)'使用表一
excsheet.cells(1,1).value="五哥" '写入数据
excbook.save '保存数据
fs.quit '推出
如何从datatable取值
Set alapp=createobject("Excel.Application")
alapp.application.visible=true
Set xlbook=alapp.workbooks.open("e:\test.xls")
Set xlSheet = xlBook.Worksheets("Sheet1")
count1=datatable.GetSheet("Action1").getrowcount'这句话可以从datatable中取出值来
For i=1 to count1
alapp.cells(i,1)= datatable.GetSheet("Action1").getparameter("数值").valuebyrow(i)
Next
xlSheet.saveas "e:\1.xls"
alapp.quit
Set excel=nothing
导入论坛 引用链接 收藏 分享给好友 推荐到圈子 管理 举报
TAG: