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

QTP资料整理

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

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

QTP调用外部api51Testing软件测试网4Jp~U ^| w wf~6|

'1:运行一个exe文件
Extern.WinExec "d:\1.exe ", 1
'2:Beep
'它让我的机器在办公室里狂响不止!
Extern.Declare micLong, "Beep", "kernel32.dll", "Beep", micLong 
Extern.Beep 500 

QTP获取对话框中的信息

z$Ab#{l0
如果弹出对话框就获取上面提示信息并与表中的信息对比,不统一证明弹出的提示出错,主要用来验证
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软件测试网*z2?%wP6| K5s

QTP获取对象属性名称用法:51Testing软件测试网8d5j hfxH lE;vW

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

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

)?:x!^(d ~0
GetToproperty----从对象库中描述对象的属性,静态值
GetToProperties----获取用于标识对象的属性集;对于这个集合,有count等属性方法
 QTP在执行过程中往excel中写入值

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

k x6D2k]1O0
datatable特定行的数据可以这样使用
DataTable.GetSheet("Action1").GetParameter("test").ValueByRow(1)

'R.s8r,O EX9t1z%]0

QTPexcel中写入内容

f3R)LQR8s0

 filename="D:\xyb\xueyb\xueyb.xls"51Testing软件测试网]9tn+Oj,cECu

' create the Excel object

5}&b z~U f7c c0

Set ExcelObj = CreateObject("Excel.Application")51Testing软件测试网.n"]E3aW

ExcelObj.Workbooks.Add51Testing软件测试网3? O:FXOG\*?$S E

Set NewSheet = ExcelObj.Sheets.Item(1)

^C/n"\'i)w0

NewSheet.Name = "Page Information"51Testing软件测试网`P%e6isRu2i

row = 151Testing软件测试网-S7Zn(a&yJ

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

LW^{.V0

NewSheet.Cells(1,2) = "xueyb"

)z"}nx d6A'V0

NewSheet.Columns("A:A").ColumnWidth = 2051Testing软件测试网9Qc#dD1z,x Jz(s

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

)_)b$g*czZ0

NewSheet.Columns("B:B").ColumnWidth = 6051Testing软件测试网fD{!Xg)Dx x

NewSheet.Columns("B:B").HorizontalAlignment = -4108 ' xlCenter51Testing软件测试网8e?r'C:le ~`:T

' save the Excel file

V xPik0

ExcelObj.ActiveWorkbook.SaveAs filename51Testing软件测试网,j2pq Nr7p3M

ExcelObj.Quit51Testing软件测试网 H%y@8U;Ei-w|xK7Ra

Set ExcelObj = Nothing51Testing软件测试网+N'uY t)rk'nx\

 

QTP等待某个对象出现方法

5Z4v"o*e#A0

Window("Flight Reservation").Static("Static").WaitProperty("visible",true,10000)51Testing软件测试网0dbwN$d7Kr

例:51Testing软件测试网*Zo#S%ghB4]\3Z

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"

B!t$E2V"{"h ky6S0

Dialog("Login").Click 177,47

H'Y x&XlVs0

Dialog("Login").WinEdit("Agent Name:").Set "mercury"

k v2u"Mq4y@W,q0

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

vJ5_&PrzBd0

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

7tZGY a.gH0

If   Window("Flight Reservation").Static("Static").WaitProperty("visible",true,10000) ==true Then

IG4rb%AH0

   msgbox("flight4A登录成功!")51Testing软件测试网*U?)f!z c4h3@ ^+c;_5R

   else

$L+gM2vcY3t0

     msgbox("flight4A登录失败!")

C$b:]1}Neho0

End If51Testing软件测试网`N.B4B"m2D_1u

 51Testing软件测试网K4W pm+r9r

QTP childobject的应用

T E)L)N,@6M/X ~0
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"

sa1^[N6A"R0
    next

 

8o0x4}}F H1]K)H0

QTP Action之间的参数传递

NxYv Y$a0
例如: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软件测试网@"} |%B+f;n)s"N `

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

_w,fGR0

2.      CaptureBitmap("D:\1.bmp")51Testing软件测试网 B{g{/d.p|
Browser("XX").Page("XX").CaptureBitmap("D:\1.bmp")

;T BDi'RL"?6C H-Npd0

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

Dim descBrowser
t)P0BWW#t0Set descBrowser = Descr
īption.Create()51Testing软件测试网 F.{{5`Q!C^
descBrowser("openurl").value = "http://www.google.cn/"51Testing软件测试网x1\!fd$E&A9pq!c(q4u
Set child =
desktop.ChildObjects(descBrowser)
l8LB+Yq_MMW0`$w0msgbox child.count()
dhaK6}R7Y6fT0If child.count()=0 Then51Testing软件测试网5[O,}l6K5G-KY} qP
    print "
网页没有被开启\"51Testing软件测试网YLX-aSJ6G
Else51Testing软件测试网A1yL$|*C,S
    For i =1 to child.count()
`"g Fui"k"[0         child(i-1).close
0E @{$Uh:_0    Next51Testing软件测试网R^4\s7_&QGRm
End If

/l&}~JdB'C7pz(L0

TAG: QTP qtp

 

评分:0

我来说两句

Open Toolbar