QTP资料整理

上一篇 / 下一篇  2009-02-27 22:46:11 / 个人分类:qtp

QTP调用外部api51Testing软件测试网fI-K_b0i0k

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

QTP获取对话框中的信息51Testing软件测试网 OA(SbFr1Zr+@;G

如果弹出对话框就获取上面提示信息并与表中的信息对比,不统一证明弹出的提示出错,主要用来验证

k1\-D0h/g0P \j3TY0
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)取一部份特征提示信息进行验证,这样我想可以节省处理时间,又可以避免长度以及空格等字符的处理

 

:Z9epp's#XB0

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

K/pza J.a.y:q0

GetRoProperty----从应用程序界面上获取对象属性(即,是脚本运行时,获取的对象动态属性值)51Testing软件测试网2\N_0Xf(~3n7O;H

例如:获取对象库中index属性值,似乎只能用GetToProperty,因为应用程序界面上对象没有该属性,只是

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

4z&BWM[*a0
GetToproperty----从对象库中描述对象的属性,静态值
GetToProperties----获取用于标识对象的属性集;对于这个集合,有count等属性方法
 QTP在执行过程中往excel中写入值

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

E?(Ut"m"W~0
datatable特定行的数据可以这样使用
DataTable.GetSheet("Action1").GetParameter("test").ValueByRow(1)

ccs4x:zqs q(J]0

QTPexcel中写入内容51Testing软件测试网$C/S%\(F} r(o%ur/R.Y

 filename="D:\xyb\xueyb\xueyb.xls"

-vp E7M j0q4O0

' create the Excel object51Testing软件测试网'j^x8qnwYP

Set ExcelObj = CreateObject("Excel.Application")

%MI1t1H.fD0

ExcelObj.Workbooks.Add51Testing软件测试网YR?(h1n_(]5x

Set NewSheet = ExcelObj.Sheets.Item(1)

&Q"L r/_'t0

NewSheet.Name = "Page Information"

so*}`_g2D0

row = 1

ymrJ Z9|wX2Y0

NewSheet.Cells(1,1) = "name"51Testing软件测试网 E$[Qf{2G'PT0j

NewSheet.Cells(1,2) = "xueyb"51Testing软件测试网(S%O5[4~n$w'X.oJcN&P

NewSheet.Columns("A:A").ColumnWidth = 20

F/}M^N6c5A/H!Q0

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

oBi Xub] C0

NewSheet.Columns("B:B").ColumnWidth = 6051Testing软件测试网!r8` tL3Y2f4b;n

NewSheet.Columns("B:B").HorizontalAlignment = -4108 ' xlCenter51Testing软件测试网g;VIxz6I

' save the Excel file51Testing软件测试网5O(Z{ \kGM;G

ExcelObj.ActiveWorkbook.SaveAs filename51Testing软件测试网 KIU7t;NP [)nj

ExcelObj.Quit51Testing软件测试网 CRJ)N(~mmk1R

Set ExcelObj = Nothing51Testing软件测试网"??N@vT y8P%v m

 

QTP等待某个对象出现方法

c'{j8J7O*Cyb2KH6u0

Window("Flight Reservation").Static("Static").WaitProperty("visible",true,10000)51Testing软件测试网$dR7Z(r'~9Y/v

例:51Testing软件测试网 H#J9ke*L ~

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软件测试网 | pU t B%Bg9x

Dialog("Login").Click 177,4751Testing软件测试网7}"g+w hLV/z

Dialog("Login").WinEdit("Agent Name:").Set "mercury"51Testing软件测试网1^/lt(c@jn)z7C]

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

l-|"vC#V7g Zj0

Dialog("Login").WinButton("OK").Click51Testing软件测试网5Zv'KU3O

If   Window("Flight Reservation").Static("Static").WaitProperty("visible",true,10000) ==true51Testing软件测试网y%Yi_SZk2~ T

   msgbox("flight4A登录成功!")51Testing软件测试网.b7my`dpk

   else51Testing软件测试网.r1t R]7d;x*P}

     msgbox("flight4A登录失败!")51Testing软件测试网$|c,{&ee `&VC

End If 51Testing软件测试网$\(Cp/j{5`{

QTP childobject的应用

PK6UV.R#lT0
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"

,ICIL?v9y2dy0
    next

 51Testing软件测试网b N v4^z+Y

QTP Action之间的参数传递

Yg)}3w WW#d0
例如: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软件测试网2i0Lfvz`&n*B YZ

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

I k`6W+Io0 

2.      CaptureBitmap("D:\1.bmp")

`h`D z/FeR9H0

Browser("XX").Page("XX").CaptureBitmap("D:\1.bmp")51Testing软件测试网.i@"G0DFNS8t-A5u@:K

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

Dim descBrowser
@0Uze0h3]0Set descBrowser = Descr
īption.Create()
HEz#L|1]$O+c:X2f0descBrowser("openurl").value =http://www.google.cn/
2L:U)xG E0Set child =
desktop.ChildObjects(descBrowser)51Testing软件测试网:D A#x0yi*ew J
msgbox child.count()51Testing软件测试网6b IO3h1l%N
If child.count()=0 Then51Testing软件测试网'v)f*~,K!A*W*Q
    print "
网页没有被开启\"
A9{D"eTf0Else
*eE:hP{ b0    For i =1 to child.count()51Testing软件测试网C W T.l ~;M/v NO
         child(i-1).close
51Testing软件测试网a Hr+U7O,I!N Tr

    Next51Testing软件测试网eF0Y-k0Ol
End If
51Testing软件测试网[/`2l#Qv2\&N


TAG:

 

评分:0

我来说两句

日历

« 2023-04-11  
      1
2345678
9101112131415
16171819202122
23242526272829
30      

数据统计

  • 访问量: 213370
  • 日志数: 58
  • 文件数: 305
  • 书签数: 21
  • 建立时间: 2007-01-31
  • 更新时间: 2009-07-27

RSS订阅

Open Toolbar