QTP中一个关于Action的实例

上一篇 / 下一篇  2006-12-08 10:48:07 / 个人分类:QTP

_;B j i Oi0     本例还是以QTP安装后自带的Flight Reservation为例来录制脚本.首先我们把登录程序系统,然后新建定单,再打开定单,最后关闭系统.分别录制成5个action,设置一个主的action为main来分别先后调用login(登录),new order(新建定单),open order(打开定单),logout(退出).

)P'Igb ];A!oW iG051Testing软件测试网 b)k%X5M8I L;w

注明:设置拆分action,选择菜单功能split Action .选择independent of each other为并列的两个action.选择Nested为主次的两个action.51Testing软件测试网y1_&S e3A lz

8]4},Jg E$B @6Ur?K0 

3rxto&l%Ox0

S(Mn*N md9j,ZZ0~0全部录制完所有action后,在main action中代码如下:

(v-Ss V[ o.^051Testing软件测试网"e)G$ghW2mm

RunAction "login", oneIteration51Testing软件测试网,Zvf8Wc-v1D5|4I
RunAction "new order", oneIteration51Testing软件测试网8I8J3d O6r%S
RunAction "open order", oneIteration
_9l4rY7x u ?T7j,]*WUi0RunAction "logout", oneIteration

I?MIE;B051Testing软件测试网-V[qIHA E

其中RunAction是一个调用action的函数,后面跟action名和要传递的参数.

${@,S j7d:?z051Testing软件测试网 h2x:`8Y(M%F7|.ZB

说明:51Testing软件测试网LZ m;euo,f-P

ny:k+w{3J4O0RunActionActionName,[Iteration,Parameters]
4k3Sc.n/o6x JyZ051Testing软件测试网|%tg*pS#l^ k,O

Z~W KuxB%BK0在这里我再引入action之间参数传递.在login action中选择菜单选项,在action properties中设置两input参数分别先后为username 和 passwd.

/o8tF(GJ.Y0

]:ZnnVd!KI0Yx0这样我们就通过RunAction "login", oneIteration,"mercury","mercury"  把这两个变量分别传给username 和passwd.这边的变量先后关系分别依次对应了action properties里input参数的先后关系.

4Cd0y9E!E` \051Testing软件测试网9f'kW |oS

这样我们就可以在login action中调用这两个变量了.51Testing软件测试网S[kWk

+B5x4cqz0Dialog("Login").WinEdit("Agent Name:").SetParameter("username")51Testing软件测试网}\ a#l8@s*s? W1i5E
Dialog("Login").WinEdit("Password:").SetParameter("passwd")
(GRUq/M;}0Dialog("Login").WinButton("OK").Click
OY5ZapC k:tf0

4d'K]+lZ+m,x,s051Testing软件测试网1p4] m/RYX

下面再来实现从一个action中传出一个变量给另一个action.51Testing软件测试网%zn-B^uyFH4V

qUWOf$v0那么我们在new order 中选择菜单选项,在action properties中设置一个output参数为orderno

CZ_z n1G2z Cv0

|E4_$LhW]5h)R0Window("Flight Reservation").WinEdit("Order No:").Output CheckPoint("Order No:")

9[MnV-V|0

2gL0P6[sGOA&eR0通过上面这句话把生成的定单号的值存放到这个ouput参数中51Testing软件测试网kJ+i%] S&_a%l.z

a0T0K}E~ x#E0RunAction "new order", oneIteration,order51Testing软件测试网B3}Z-V[2e
RunAction "open order", oneIteration,order51Testing软件测试网KM9_~W

51Testing软件测试网.v&PPM)on d a

再靠main action中这个order变量来传递,这个变量正好对应着new order里的output参数.从new order中传出来,再把这个变量传给open order.当然在open order中还要同样设置input参数.和这个order变量对应起来.51Testing软件测试网]:f~9zH,Bc}%\

U b8e1Rr"zU,Xa#fi0这样就可以在open order中使用这个变量了.51Testing软件测试网 X.eD5C K rt/[

7Z8o n#R$e4a3a[)q0Window("Flight Reservation").Dialog("Open Order").WinEdit("Edit").Set Parameter("orderno")

%j @e `WG051Testing软件测试网 Qx Rg0A

当然其实两个action之间传递参数还可以更简单点.比如一个脚本中 datatable和环境变量都是全局的,在一个脚本中的任何action都能使用.所以可以借用这两个来传递.

~ ]"j1B1mBo051Testing软件测试网 Q!J;z(_ N/Yw/Dtx

通过这个例子最主要讲的是两点,拆分action和action之间的参数传递.51Testing软件测试网!H`2Z:oB Ls0O


TAG: QTP

引用 删除 18552008252@163   /   2015-11-18 16:55:57
5
引用 删除 654363870   /   2014-07-26 08:05:53
5
花洁儿的个人空间 引用 删除 花洁儿   /   2012-01-19 13:17:43
1
sky_zhouw的个人空间 引用 删除 sky_zhouw   /   2009-08-06 16:30:54
明了
xiaonan的个人空间 引用 删除 xiaonan   /   2007-01-24 08:57:22
注明:设置拆分action,选择菜单功能split Action .选择independent of each other为并列的两个action.选择Nested为主次的两个action.

文章中有所说明啊
引用 删除 lovetest   /   2007-01-23 20:04:47
我想请问,如何设置一个action为主action呢?我加了个action名字是“main”,可是运行时怎么能让程序首先执行“main”这个action呢?
xiaonan的个人空间 引用 删除 xiaonan   /   2006-12-21 17:14:42
xiaonan_1984s@hotmail.com 加的时候请注明一下
引用 删除 miniyal   /   2006-12-21 16:21:33
还不是很清楚嘢,请问你的MSN多少
 

评分:0

我来说两句

Open Toolbar