空闲的时候就
学习如何编写
QTP脚本,今天学了一天,头都大了,有没有什么好的方法,有经验的朋友分享一下经验啊;我能看懂脚本但自己写下来就麻烦了.
,`f_ `)PN s])a,F0q051Testing软件测试网SZ&Jn*DyAcQTP专家视图中使用的是VBscrīpt,大家可以查看一些关于VB的使用来帮助理解QTP专家视图中的脚本。
51Testing软件测试网7G7\ez]Auq在此提供一些向导性说明和注意事项,希望队大家有帮助。
51Testing软件测试网MV0]W
`
o%I^#o1 VBscrīpt是不区分大小写的,比如,两行语句的作用是相同的。
J'N,TC
yY)Yn9z0Browser("Browser").
page("Page").
webButton("Login").
click)r/YN/x&mgx0hn?;m+r0Browser("Browser").Page("Page").WebButton("Login").Click
51Testing软件测试网SV:[3M [A!|2 字符串常量一定要用双引号“”引起来,比如,
51Testing软件测试网P,O[Q
nSx"iBrowser("Browser").Page("Housing Contract Def").WebEdit("txtCompoundName").Set
"测试"51Testing软件测试网$?Q2D
E@d6Ol
其中“测试”,是字符串常量,如果用数字常量,则不需要引号;
9C-ZiwM{Pd03 使用变量,要先定义
G.NX8V0j5LR:\_&c0普通类型的变量,使用Dim语句定义,
格式Dim 变量名 (as 变量类型),比如51Testing软件测试网Ol
r |Km~8]9qg
Dim num as int
(z(o N ~L L0num=Browser("Browser").Page("HousingContractDef").WebList("lstCity").GetROProperty(Property)
Cn
kWX+v0如果要指定一个用于存储对象的变量,则使用Set语句,比如,
51Testing软件测试网aeN5Nad'K!rV#W)|Set UserEditBox=51Testing软件测试网t.]
hid
h+k"NJ
Browser("Browser").Page("HousingContractDef").WebEdit("txtCompoundName")51Testing软件测试网M)bHS%C6PaUserEditBox.set "特色体能"
51Testing软件测试网&Q:x|/X%ZZ4 使用括号的规则,一般如下:
d$ym"I2?+wy1c0如果想调用一个方法的返回值,那么这个方法的参数必须用括号括起来。比如,
51Testing软件测试网_ mkec(1)Set WebEditObj = Browser("
Mercury Tours").Page("Method of Payment").WebTable(FirstName).
ChildItem(9,3,"WebEdit",0)51Testing软件测试网 ^s~`QBe
xrWebEditObj.Set "Example"
Ep:K;Ze051Testing软件测试网"SC F2v'](2)call 语句中,Action的参数列表需要用括号括起来,
G(]UkT[6iGO0Call
RunAction("BookFlight",oneIteration)51Testing软件测试网
sS"U;Xf B51Testing软件测试网G w w9o:@;AA/oj(3)Check 方法的返回值,所以check方法的参数CheckPoint("MyProperty")必须要用括号括起来。
51Testing软件测试网9H'M%BxB/P-v1D^v
ca = Browser("MyBrowser").Page("MyPage").Check
(CheckPoint(MyProperty))51Testing软件测试网+i3]5Ofq9I?^ I51Testing软件测试网9mnR8O m(4)Click方法不用括号,因为不需要返回值;
R6ZR+J:Xd0Browser("Browser").Page("Page").WebButton("Login").Click
$J M'K
V"LK05 控制语句的使用
RhB
d
\(YP;^0If ...Then...Else, For...Next,Do...Loop
51Testing软件测试网q8Fn
\3b~5x51Testing软件测试网c rF7|5P6 实例解析
51Testing软件测试网'jj5[$UP7^X9o`(1)Browser("Browser").Page("Housing Contract Def").WebEdit("txtCompoundName").Set
"testing"
4zp3X5i9^LMQB0Browser("Browser")表明这个浏览器测试对象的名字为Browser;
51Testing软件测试网 ]-g
b~uPage("Housing Contract Def")表明当前页的名称是Housing Contract Def;
nKQ,R e T_0WebEdit("txtCompoundName")表明当前被操作的对象是一个WebEdit类型的对象,
6Jdx"cNn0它的名称txtCompoundName;
$W/\9d"R?&L#DH!E pN0Set
"testing"表明要将txtCompundName这个WebEdit对象设置的值设置为“testing”;
51Testing软件测试网3X0r+O ~(I(w"C/aB3rU51Testing软件测试网Mb3B!Pu"_il(2)在写脚本的时候,键入了一个对象的类型Browser(,系统就会自动列出对象仓库中所有Browser类型对象供用户选择;如果此时对象仓库中只有一个对象,就会直接输入该对象;
51Testing软件测试网F,|%j-pch0uU(3)在一个对象后面,输入一个表示层次关系的点号(.),系统就会自动列出该对象的所有属性和方法信息;
51Testing软件测试网#gj)LvUU8I&eX(4)如果键入的方法包含参数,那么在输入完这个方法的名称后,QTP会以tip的形式给出方法后面的参数列表。比如,select方法,当键入Browser("Browser").Page("Housing Contract Def").WebList("lstSex").Select后,系统会自动显示select(items)信息。
%zuW(G8X]W1ywx0!WC atj~]0(5)Data Table 参数化语法:
51Testing软件测试网~9ZQ7l_Object_Hierarchy.Method DataTable(ColumnName,SheetID)
U._G6]uKx0Object_Hierarchy指对测试对象的层次定义,层次对象之间用.号分隔;
ULr
IO0Method 指对被操作对象使用的方法,比如,select;
4v U.Y l~#h$O0DataTable指的是要从DataTable 中获得数据;
qU(u$k.I$Wa/?%b0ColumnName,指的是DataaTable中提供数据的列的名称;
;?o.R5VDm0SheetID:指数据所属的sheet,如果使用一个全局参数,则sheetID为dtGlobalSheet.51Testing软件测试网8X LsTm
Data Table的应用说明:比如,在Mercury Tours系统中,航班的选择时,有出发地——目的地,录制一次只能选择一个出发地和一个目的地;如果想测试起始和目的地为其它城市时,系统是否能正常运行,无需在进行录制,只需对出发地(fromPort)和目的地(ToPart)进行参数化即可。
51Testing软件测试网N,_ d&i'rU5kF以ToPart为例说明————参数化前的语句:
!?/P$U8{c
G z0Browser("Welcome:Mercury Tours").Page("Find a Flight:Mercury").Weblist("ToPart").select"London"
51Testing软件测试网vakER$M参数后的语句:
51Testing软件测试网(w'h4^4Z+TBrowser("Welcome:Mercury Tours").Page("Find a Flight:Mercury").Weblist("ToPart").select DataTable("ToPart",dtGlobalSheet)l8n+hzZB04oM'w\5en051Testing软件测试网"f&Np(B j51Testing软件测试网Yn
[R
n1v1UW6cXu-Jq @m5u/Nq:VU0S#fK6f
j
W051Testing软件测试网qt~Y)J4m0v2P51Testing软件测试网]#D(?s/T| }#^4P1X
U!`+x1yS2u051Testing软件测试网9hi8s&a-XAa
a\
51Testing软件测试网b8|n9`-o5BT9t