在QTP中使用描述性编程(实例)

上一篇 / 下一篇  2009-03-04 17:31:08 / 个人分类:qtp

QTP中使用描述性编程是一个提高QTP脚本利用率的很好的方式。51Testing软件测试网v!r V\a7L~'B
        通常QTP是通过对象库来识别不同的对象,而描述性编程是QTP另外一种能够识别对象的途径,它不依赖于对象库,通过增加一些对象的描述来识别对象的。51Testing软件测试网2O,o6W;O;| o.y(gj
 51Testing软件测试网"`VJ%W E
        说明:本例子是以Flight飞机订票系统的登陆界面为测试页面进行描述的。
Fo:u$o5nS;BM WFy9{0 
~%s9g.`]0        步骤一:录制脚本
-}%j6Z,XmaMD7f|0Dialog("Login").WinEdit("Agent Name:").Set "Holly"
s!Y(l4^]ECs0Dialog("Login").WinEdit("Password:").SetSecure "46ef0dc7efe5834c73673898279af1204fea51a7"51Testing软件测试网 m#g7Zjp'|m g
Dialog("Login").WinButton("Cancel").Click51Testing软件测试网0WEPu:\1\y/C
共录制3步操作,输入Agent Name, Password, 点击Cancel按钮
'y {^Jn%F'{_0 51Testing软件测试网c,d|;Q&@pe2UH
        步骤二:初级描述性编程51Testing软件测试网.k4RL7y x
Dialog("Regexpwndtitle:=Login").WinEdit("Attached text:=Agent Name:").Set "Holly"51Testing软件测试网|(@PY{^
Dialog("Regexpwndtitle:=Login").WinEdit("Attached text:=Password:").Set “Mercury
`6@WVz+M+x0Dialog("Regexpwndtitle:=Login").WinButton("Class Name:=WinButton", "text:=Cancel").Click51Testing软件测试网u?cIZ N|i
        在这里要注意有三点:
h"`(?!@6v{(|0        1)如果需要两个以上特性来描述一个对象,需要使用逗号(,)对描述性语言进行分割
e:|G QDhA;TR|!o0        2)使用:=来连接属性和属性值,并且:=两边不能有空格51Testing软件测试网)e7HRf5y[ V NH
        3)使用SPY查看对象的属性名和属性值(Tools -> Object Spy)51Testing软件测试网dd/s|kU)Xk
 
(p*W&uE1Nl#_\g0        步骤三:描述性编程提高
-B"eZ~h^0Dim descEditLogin
!Y']$?c]0Set descEditLogin = Description.Create()
J8M;i nC9L0descEditLogin("Class Name").Value = "Dialog"
&VzxHH|0descEditLogin("Regexpwndtitle").Value = "Login"51Testing软件测试网JQ:`"jX9]%Wl
 
I-T6yW:F!MUkXG0Dialog(descEditLogin).WinEdit("Attached text:=Agent Name:").Set "Holly"51Testing软件测试网4fUkdy`@joA
Dialog(descEditLogin).WinEdit("Attached text:=Password:").Set "Mercury"
{(ijK:K8\0Dialog(descEditLogin).WinButton("Class Name:=WinButton", "text:=Cancel").Click
5CuL-}/~a J6mZ1`0        在这里需要注意有两点:
rI@C$^z.L3a0        1)把经常使用到的对象定义为一个对象变量,方便以后调用,减少代码工作量和错误
&fo9T8b\o#Wb!owb-@0        2)使用SPY获取对象的属性和属性值
? nu3s5RlhN!Z0 
|S Jm(H*L]c0        步骤四:使用自定义的环境变量
8[.]\:}*uT2Bki0        在File>>Settings>>Environment中选择user-defined,增加一个变量
a+D5U B'y^&hv+o0dlgLogin = “Login”
^'nW8FKU"qVY0 51Testing软件测试网_"vU*qF&L;sh:Y V/N
        这样脚本可以被修改为:
-t n(je(v5t)u-V-^/^0Dim descEditLogin51Testing软件测试网Qq Wz6v:e1| P.D
Set descEditLogin = Description.Create()
SJ(G"i4Bqu0descEditLogin("Class Name").Value = "Dialog"51Testing软件测试网,A6a^7m3_v,F P9O\
descEditLogin("Regexpwndtitle").Value = Environment.Value("dlgLogin")51Testing软件测试网i,z Y X,spEQ F
 
fy.Yv,Q j1r3~0Dialog(descEditLogin).WinEdit("Attached text:=Agent Name:").Set "Holly"51Testing软件测试网3NU1K{9@
Dialog(descEditLogin).WinEdit("Attached text:=Password:").Set "Mercury"
6B}gW.y:_5o!l0Dialog(descEditLogin).WinButton("Class Name:=WinButton", "text:=Cancel").Click51Testing软件测试网:qH,^i4[| t
        当然,参数化的方式很多,这边介绍的是使用环境变量51Testing软件测试网8M,mg%Ly/E
 
nfkQ6T0        步骤五:从XML文件导入环境变量
|3YY9}w u5c0<Enviroment>51Testing软件测试网i W%a;i(AZ fh4J*@
       <Variable>
k8{p/kk5u w'n ^0              <Name>dlgLogin</Name>
SvR3bR0jm PY}0              <Value>Login</Value>
[S~5rt f0       </Variable>
!s NeI LL!mZ7H0</Environment>
5z!P rBaR [^8E.n0可以使用手工导入,也可以使用LoadFromFile自动导入51Testing软件测试网Ox;if4Kvo
 
.N#R)g\@0        总结:51Testing软件测试网3rr ]8\a
        优点是当对象的一些属性变更后,脚本更容易维护。51Testing软件测试网_`]$^!L0DK
        比如说对于一个通用对象,比如save, reset, cancel等按钮,一个页面有3个,30个页面就有90个对象,51Testing软件测试网a cS;Lxu#s
        假如save变成保存,reset变成重置,cancel变成取消,那么对象库就会产生很大的变动。51Testing软件测试网1N8Tf`{B\ k
        而使用了描述性编程只需要在导入的XML文件中修改一个值就可以了。
G5Ht9w Q!Z7g0        当然描述性编程的作用远远不止这些,这次只是抛砖引玉,希望大家共同进步。

TAG:

topor的个人空间 引用 删除 topor   /   2009-03-06 12:13:21
谢谢,看了之后对描述性编程有了一个大致的概念了。
 

评分:0

我来说两句

日历

« 2024-04-23  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

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

RSS订阅

Open Toolbar