Practice makes perfect! 目前,主要从事Web系统、B/S构架的测试。

QTP脚本的学习

上一篇 / 下一篇  2007-06-11 16:48:19 / 个人分类:QTP学习

空闲的时候就学习如何编写QTP脚本,今天学了一天,头都大了,有没有什么好的方法,有经验的朋友分享一下经验啊;我能看懂脚本但自己写下来就麻烦了.
,`f_`)PNs])a,F0q051Testing软件测试网SZ&Jn*DyAc
QTP专家视图中使用的是VBscrīpt,大家可以查看一些关于VB的使用来帮助理解QTP专家视图中的脚本。51Testing软件测试网7G7\ez] Auq
在此提供一些向导性说明和注意事项,希望队大家有帮助。51Testing软件测试网MV0]W ` o%I ^#o
1 VBscrīpt是不区分大小写的,比如,两行语句的作用是相同的。
J'N,TC yY)Yn9z0Browser("Browser").page("Page").webButton("Login").click
)r/YN/x&mgx0hn?;m+r0Browser("Browser").Page("Page").WebButton("Login").Click51Testing软件测试网SV:[3M [A!|
2 字符串常量一定要用双引号“”引起来,比如,51Testing软件测试网P,O[Q nSx"i
Browser("Browser").Page("Housing Contract Def").WebEdit("txtCompoundName").Set"测试"51Testing软件测试网$? Q2D E@d6Ol
其中“测试”,是字符串常量,如果用数字常量,则不需要引号;
9C-Zi wM{P d0
3 使用变量,要先定义
G.NX8V0j5LR:\_&c0普通类型的变量,使用Dim语句定义,格式Dim 变量名 (as 变量类型),比如51Testing软件测试网 Ol r |K m~8]9qg
Dim num as int
(z(oN ~L L0num=Browser("Browser").Page("HousingContractDef").WebList("lstCity").GetROProperty(Property)
Cn kWX+v0
如果要指定一个用于存储对象的变量,则使用Set语句,比如,51Testing软件测试网ae N5Nad'K!rV#W)|
Set UserEditBox=51Testing软件测试网t.] hi d h+k"NJ
Browser("Browser").Page("HousingContractDef").WebEdit("txtCompoundName")
51Testing软件测试网M)bHS%C6Pa
UserEditBox.set "特色体能"51Testing软件测试网&Q:x|/X%ZZ
4 使用括号的规则,一般如下:
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 xr
WebEditObj.Set "Example"
E p:K;Ze051Testing软件测试网"SC F2v']
(2)call 语句中,Action的参数列表需要用括号括起来,
G(]UkT[6iGO0CallRunAction("BookFlight",oneIteration)51Testing软件测试网 sS"U;Xf B
51Testing软件测试网Gww9o:@;AA/oj
(3)Check 方法的返回值,所以check方法的参数CheckPoint("MyProperty")必须要用括号括起来。51Testing软件测试网9H'M%BxB/P-v1D^v c
a = Browser("MyBrowser").Page("MyPage").Check(CheckPoint(MyProperty))51Testing软件测试网+i3]5Ofq9I?^ I
51Testing软件测试网9m nR8Om
(4)Click方法不用括号,因为不需要返回值;
R6ZR+J:Xd0Browser("Browser").Page("Page").WebButton("Login").Click
$JM'K V"LK05 控制语句的使用
RhB d \(YP;^0If ...Then...Else, For...Next,Do...Loop51Testing软件测试网 q8Fn \3b~5x
51Testing软件测试网c rF7|5P
6 实例解析51Testing软件测试网'jj5[$UP7^X9o`
(1)Browser("Browser").Page("Housing Contract Def").WebEdit("txtCompoundName").Set"testing"
4zp3X5i9^LMQB0
Browser("Browser")表明这个浏览器测试对象的名字为Browser;51Testing软件测试网]-g b~u
Page("Housing Contract Def")表明当前页的名称是Housing Contract Def;
nKQ,R eT_0WebEdit("txtCompoundName")表明当前被操作的对象是一个WebEdit类型的对象,
6Jdx"cNn0它的名称txtCompoundName;
$W/\9d"R?&L#DH!E pN0Set"testing"表明要将txtCompundName这个WebEdit对象设置的值设置为“testing”;51Testing软件测试网3X0r+O ~(I(w"C/aB3rU
51Testing软件测试网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] uK x0
Object_Hierarchy指对测试对象的层次定义,层次对象之间用.号分隔;
ULr IO0
Method 指对被操作对象使用的方法,比如,select;
4vU.Y l~#h$O0DataTable指的是要从DataTable 中获得数据;
qU(u$k.I$Wa/?%b0
ColumnName,指的是DataaTable中提供数据的列的名称;
;?o.R5VDm0SheetID:指数据所属的sheet,如果使用一个全局参数,则sheetID为dtGlobalSheet.51Testing软件测试网8X LsT m
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+T
Browser("Welcome:Mercury Tours").Page("Find a Flight:Mercury").Weblist("ToPart").select DataTable("ToPart",dtGlobalSheet)
l8n+hzZB0
4oM'w \5en051Testing软件测试网"f&Np(B j
51Testing软件测试网Y n [R n1v1UW

6cXu-Jq @m5u/Nq:VU0
S#fK6f j W051Testing软件测试网qt~Y)J4m0v2P
51Testing软件测试网]#D(?s/T|}#^4P1X

U!`+x1yS2u051Testing软件测试网9hi8s&a-XAa a\
51Testing软件测试网b8|n9`-o5BT9t

TAG: QTP学习

引用 删除 ACE2003   /   2009-03-27 01:12:22
LZ加我MSN 交流:kevinpzeng@hotmail.com
Freedom Group 引用 删除 Lola1123   /   2007-07-16 15:22:47
To 碎片:哦,我一般的习惯是先定义变量后使用,这样自己心里有个底。 发现问题——解决问题 是个提升的过程,有好处。
碎片的个人空间 引用 删除 碎片   /   2007-07-13 21:24:22
想说的是
在QTP中,使用变量之前不定义也是可以用的.这点很不方便,在出现错误时比较难定位.一次我写程序,运行时出错,调试了半天,发现逻辑上一点错都没有,最后发现是一个变量名写错了.郁闷了好久.
 

评分:0

我来说两句

Open Toolbar