在QTP中一个关于Action 的实例

上一篇 / 下一篇  2008-08-20 21:20:45

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

[w+N4vDI8ky]\0注明:设置拆分action,选择菜单功能split Action .选择independent of each other为并列的两个action.选择Nested为主次的两个action.51Testing软件测试网2R} mx!m@&]

51Testing软件测试网0M7TNPPq#@YP;R

 51Testing软件测试网iD`*we `3Q}f

*m sw-aCPL;x| {.W0全部录制完所有action后,在main action中代码如下:51Testing软件测试网\;ewkpD"t?

51Testing软件测试网;W {&C_\

RunAction "login", oneIteration51Testing软件测试网 G(F;N1q8{51Testing软件测试网#g!pd4{-z1A Zcv8Lq
RunAction "new order", oneIteration
_-`NDP o0*{B(xSC3^O#i"[e X205471RunAction "open order", oneIteration51Testing软件测试网 hU4[P"i6U"U%S
u BWk9ro sj#x0v205471RunAction "logout", oneIteration

j+zIG$]5UfT051Testing软件测试网5Ol_"Jj\(H

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

$|K1[~ m ^w}G0

^%a.X:sYb}M&Xl9N0说明:

G x-T1]-]E%B"r!F0

?z2y9y?9hf^3w!~s)r4}0RunActionActionName,[Iteration,Parameters]
;G'Q S.VIl$pamX0Leql/r)_205471
51Testing软件测试网hJQ N9S?m

~5u4\"{'e a$y%I0在这里我再引入action之间参数传递.在login action中选择菜单选项,在action properties中设置两input参数分别先后为username 和 passwd.

Ba va5cP051Testing软件测试网Q7dP,I3w#j(AK

这样我们就通过RunAction "login", oneIteration,"mercury","mercury"  把这两个变量分别传给username 和passwd.这边的变量先后关系分别依次对应了action properties里input参数的先后关系.51Testing软件测试网 ~t'iW ja

51Testing软件测试网(l`dFIm*`S

这样我们就可以在login action中调用这两个变量了.51Testing软件测试网%z|1iq&Dr3V j&en9Ik

51Testing软件测试网#kz%X0u/~

Dialog("Login").WinEdit("Agent Name:").SetParameter("username")51Testing软件测试网i~D s9L ~ nr
NN0X{tJ:HN0Dialog("Login").WinEdit("Password:").SetParameter("passwd")51Testing软件测试网'N6LL6mF0XD51Testing软件测试网s@0B4~1]y
Dialog("Login").WinButton("OK").Click
AZ6f's4E'CC6nMGAs0J s} {o%`3~205471
51Testing软件测试网/kTXBHb$uU

51Testing软件测试网(b,yT"^.`M{p2|

下面再来实现从一个action中传出一个变量给另一个action.

S+P*T(?2~ MZ.j k0

wr `,W3}?"A0eX X0那么我们在new order 中选择菜单选项,在action properties中设置一个output参数为orderno

w6w6fj Br+?3\0

E7@6`6tHS'@0Window("Flight Reservation").WinEdit("Order No:").Output CheckPoint("Order No:")51Testing软件测试网En5F DecV{(F

$J4h#mv P%E0通过上面这句话把生成的定单号的值存放到这个ouput参数中

_6{8Jw,J ?T5D.E0

J,A&uBJ;\0RunAction "new order", oneIteration,order51Testing软件测试网#M$VV7?$Zo8w [N
/b8L SJ6~3v]~VB0
RunAction "open order", oneIteration,order
51Testing软件测试网*E g#q#W/} k?O,L._

51Testing软件测试网_.x1VTgBrB

再靠main action中这个order变量来传递,这个变量正好对应着new order里的output参数.从new order中传出来,再把这个变量传给open order.当然在open order中还要同样设置input参数.和这个order变量对应起来.51Testing软件测试网4NPJ@ z~

51Testing软件测试网:],T1X&q.k.Q+[

这样就可以在open order中使用这个变量了.51Testing软件测试网RYI'G f

51Testing软件测试网T%Y8U6rW&|G

Window("Flight Reservation").Dialog("Open Order").WinEdit("Edit").Set Parameter("orderno")51Testing软件测试网7J(P B!j'HI#TN Z @

:le:^F*Q|V {/@8v0当然其实两个action之间传递参数还可以更简单点.比如一个脚本中 datatable和环境变量都是全局的,在一个脚本中的任何action都能使用.所以可以借用这两个来传递.

F*Va~M u+V1Zv(n0

:Y0b&nz;? fN7`(\B0通过这个例子最主要讲的是两点,拆分action和action之间的参数传递.51Testing软件测试网;dsiG-w8zj


TAG: action实例

 

评分:0

我来说两句

日历

« 2024-04-27  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 3976
  • 日志数: 9
  • 图片数: 1
  • 建立时间: 2008-08-01
  • 更新时间: 2008-10-19

RSS订阅

Open Toolbar