不谋万世者,不足谋一时;不谋全局者,不足谋一域。君子敏于事而慎于言 新浪微薄:土司阿哈

QTP资料整理

上一篇 / 下一篇  2008-09-14 13:46:14 / 个人分类:qtp

1208328177
  • 自动化测试:
  • 测试文档:

QTP调用外部api

"t qT9|;H"@"n|$O"^0
'1:运行一个exe文件
Extern.WinExec "d:\1.exe ", 1
'2:Beep
'它让我的机器在办公室里狂响不止!
Extern.Declare micLong, "Beep", "kernel32.dll", "Beep", micLong 
Extern.Beep 500 

QTP获取对话框中的信息51Testing软件测试网5AM.O:xU1d8X8@E\

如果弹出对话框就获取上面提示信息并与表中的信息对比,不统一证明弹出的提示出错,主要用来验证
if browser("web_name").dialog("dialog_name").exist(1) then'如果不出现=false
    error_message=browser("web_name").dialog("diaglog_name").static("用户密码错误!".getRoproperty("text")
   if error_message<>(datatable.value("error_info"))then
        msgbox(error_message)
     end if
    browser("web_name").dialog("diaglog_name").close
 end if
这里我总结了两点技巧:
一是:对于dialog中,虽然提示信息对象名称是"用户密码错误",但如果信息对象名称是该用户不存在,不用更改会自动识别,我想主要是录制第一遍时,用户密码错误只是让运行时能找到这个控制,而不管它是什么内容,因为在对象仓库中,text不是决定该对象的属性
   二是:如果对于提示信息比较长的,可以用mid(error_message,n,m)取一部份特征提示信息进行验证,这样我想可以节省处理时间,又可以避免长度以及空格等字符的处理

 51Testing软件测试网/l3S_qtfxc#o~ GH1Y

QTP获取对象属性名称用法:

zK*N.|3cq.RnfY0
GetRoProperty----从应用程序界面上获取对象属性(即,是脚本运行时,获取的对象动态属性值)
例如:获取对象库中index属性值,似乎只能用GetToProperty,因为应用程序界面上对象没有该属性,只是

QTP为识别该对象创立的描述属性;

3s)P-p,]2p_i0B0Q0
GetToproperty----从对象库中描述对象的属性,静态值
GetToProperties----获取用于标识对象的属性集;对于这个集合,有count等属性方法
 QTP在执行过程中往excel中写入值

DataTable.GlobalSheet.AddParameter "Name", "wangyidonglu"

*J2y'M Z|x/x0
datatable特定行的数据可以这样使用
DataTable.GetSheet("Action1").GetParameter("test").ValueByRow(1)

@Vl1D;S Tsz0

QTPexcel中写入内容51Testing软件测试网 YH3K tpw]

 filename="D:\xyb\xueyb\xueyb.xls"51Testing软件测试网+]-}Ac\K7D

' create the Excel object51Testing软件测试网V-wi$\5~C8K{f

Set ExcelObj = CreateObject("Excel.Application")

d*?:t7p? VF0

ExcelObj.Workbooks.Add51Testing软件测试网ZTOW"~*@z`)N

Set NewSheet = ExcelObj.Sheets.Item(1)

4T3M_Jm,tgf0

NewSheet.Name = "Page Information"51Testing软件测试网;uf:l*G_B I

row = 151Testing软件测试网0y4aAX$a

NewSheet.Cells(1,1) = "name"

~Yz Dj/YV0

NewSheet.Cells(1,2) = "xueyb"51Testing软件测试网 R| `v2W[yD

NewSheet.Columns("A:A").ColumnWidth = 2051Testing软件测试网7bC?']Br;d)fTo

NewSheet.Columns("A:A").Font.Bold = True

:x,\x^L,xK5la0

NewSheet.Columns("B:B").ColumnWidth = 6051Testing软件测试网;D0ed9YT5NL(|

NewSheet.Columns("B:B").HorizontalAlignment = -4108 ' xlCenter

K.P dHOlLez0

' save the Excel file51Testing软件测试网Q`#_|fh [,@

ExcelObj.ActiveWorkbook.SaveAs filename51Testing软件测试网m8AM(x C,fzdc)~

ExcelObj.Quit

Mf^ H:Al|lld0Yw0

Set ExcelObj = Nothing51Testing软件测试网Tu6ed D

 

QTP等待某个对象出现方法51Testing软件测试网g@4TH!Y TNyM

Window("Flight Reservation").Static("Static").WaitProperty("visible",true,10000)51Testing软件测试网\/F+i2hUw$S@

例:

RLv ~"HX7R0

SystemUtil.Run "E:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\flight4a.exe","","E:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\","open"51Testing软件测试网ciG d.ahH!ZrvN

Dialog("Login").Click 177,4751Testing软件测试网SE~ZK8T miha

Dialog("Login").WinEdit("Agent Name:").Set "mercury"51Testing软件测试网e8ONx$J)lT7c-_

Dialog("Login").WinEdit("Password:").SetSecure "4886c0abed388164f4f9c00404eef82ad60997ea"

Q3zL3Rvb5m0

Dialog("Login").WinButton("OK").Click

4y8fy;O DuE-D0

If   Window("Flight Reservation").Static("Static").WaitProperty("visible",true,10000) ==true Then51Testing软件测试网p3nd9Z(n t

   msgbox("flight4A登录成功!")

-@\'Sib%f0

   else

1EKW7a-s,Y+{_ z0

     msgbox("flight4A登录失败!")

'aI2N%P%sG ][D0

End If

H3E6h&qo y&s0

 

6V g:e} q$GD0

QTP childobject的应用

uQDuK#RR5I.E[_p0
childobject可以返回界面上满足条件的对象集合,而且与对象库里是否有这些对象无关,这就可以简化对象库;
返回的对象集合的count方法可以返回对象个数,这就可以通过下标对单个对象进行操作;在出现index标识对象时
可以进行运用
:Set m_WinCheck=Descrīption.Create()
     m_WinCheck("nativeclass").Value="Button"
     set All_WinCheck=Window("").Dialog("").Childobject(m_WinCheck)
     n=All_WinCheck.Count()
    for i=0 to n-1

     All_WinCheck(i).Set "ON"51Testing软件测试网!TU)Y P)kz(eX

    next

 

/qY GSz!|0

QTP Action之间的参数传递

/?l a J,Gp%v3K,j0
例如:Action1中,有如下代码:
out_str="This is out_string"
RunAction "Action2",oneIteration,out_str
Acton2中,在其step->Action Properties中的,input参数栏,加入out_str,
msgbox(parameter("out_str")),就能正确显示参数了

QTP自动截图51Testing软件测试网IMkhs

1.      选择菜单栏Tools->Option项,再选择Run选项卡,在Run窗体中选中“Save still image captures to results,且它右边的下拉框中选择“For errors”

51Testing软件测试网q&@P HH

2.      CaptureBitmap("D:\1.bmp")
#p!Cqk I4D0Browser("XX").Page("XX").CaptureBitmap("D:\1.bmp")

c ~ E%hC.\0

QTP中判断一个网页是否已经被开启

Dim descBrowser51Testing软件测试网{!d0q nw]w
Set descBrowser = Descr
īption.Create()51Testing软件测试网+c}2K)wqQ
descBrowser("openurl").value = "http://www.google.cn/"51Testing软件测试网1t+q S{3k*h
Set child =
desktop.ChildObjects(descBrowser)
|Xs@X[0msgbox child.count()51Testing软件测试网+n;m#nN!d.m:S\X
If child.count()=0 Then51Testing软件测试网4r`7M$H3OUHY
    print "
网页没有被开启\"
,I.Y)NG([SZ)] K)k&@;U2V{0Else
BE(IkA P q0    For i =1 to child.count()51Testing软件测试网1@ VDz;O)eYe1`8[
         child(i-1).close51Testing软件测试网)?j"X Q6d c
    Next51Testing软件测试网9sS3].?QxV
End If

])O#Zi3x `o#f Z0

TAG: QTP qtp

 

评分:0

我来说两句

Open Toolbar