QTP中的描述性编程

QTP中使用描述性编程是一个提高QTP脚本利用率的很好的方式。

        通常QTP是通过对象库来识别不同的对象,而描述性编程是QTP另外一种能够识别对象的途径,它不依赖于对象库,通过增加一些对象的描述来识别对象的。

 

        说明:本例子是以Flight飞机订票系统的登陆界面为测试页面进行描述的。

 

        步骤一:录制脚本

Dialog("Login").WinEdit("Agent Name:").Set "Holly"

Dialog("Login").WinEdit("Password:").SetSecure "46ef0dc7efe5834c73673898279af1204fea51a7"

Dialog("Login").WinButton("Cancel").Click

共录制3步操作,输入Agent Name, Password, 点击Cancel按钮

 

        步骤二:初级描述性编程

Dialog("Regexpwndtitle:=Login").WinEdit("Attached text:=Agent Name:").Set "Holly"

Dialog("Regexpwndtitle:=Login").WinEdit("Attached text:=Password:").Set “Mercury”

Dialog("Regexpwndtitle:=Login").WinButton("Class Name:=WinButton", "text:=Cancel").Click

        在这里要注意有三点:

        1)如果需要两个以上特性来描述一个对象,需要使用逗号(,)对描述性语言进行分割

        2)使用:=来连接属性和属性值,并且:=两边不能有空格

        3)使用SPY查看对象的属性名和属性值(Tools -> Object Spy)

 

        步骤三:描述性编程提高

Dim descEditLogin

Set descEditLogin = Description.Create()

descEditLogin("Class Name").Value = "Dialog"

descEditLogin("Regexpwndtitle").Value = "Login"

 

Dialog(descEditLogin).WinEdit("Attached text:=Agent Name:").Set "Holly"

Dialog(descEditLogin).WinEdit("Attached text:=Password:").Set "Mercury"

Dialog(descEditLogin).WinButton("Class Name:=WinButton", "text:=Cancel").Click

        在这里需要注意有两点:

        1)把经常使用到的对象定义为一个对象变量,方便以后调用,减少代码工作量和错误

        2)使用SPY获取对象的属性和属性值

 

        步骤四:使用自定义的环境变量

        在File>>Settings>>Environment中选择user-defined,增加一个变量

dlgLogin = “Login”

 

        这样脚本可以被修改为:

Dim descEditLogin

Set descEditLogin = Description.Create()

descEditLogin("Class Name").Value = "Dialog"

descEditLogin("Regexpwndtitle").Value = Environment.Value("dlgLogin")

 

Dialog(descEditLogin).WinEdit("Attached text:=Agent Name:").Set "Holly"

Dialog(descEditLogin).WinEdit("Attached text:=Password:").Set "Mercury"

Dialog(descEditLogin).WinButton("Class Name:=WinButton", "text:=Cancel").Click

        当然,参数化的方式很多,这边介绍的是使用环境变量

 

        步骤五:从XML文件导入环境变量

<Enviroment>

       <Variable>

              <Name>dlgLogin</Name>

              <Value>Login</Value>

       </Variable>

</Environment>

可以使用手工导入,也可以使用LoadFromFile自动导入

 

        总结:

        优点是当对象的一些属性变更后,脚本更容易维护。

        比如说对于一个通用对象,比如save, reset, cancel等按钮,一个页面有3个,30个页面就有90个对象,

        假如save变成保存,reset变成重置,cancel变成取消,那么对象库就会产生很大的变动。

        而使用了描述性编程只需要在导入的XML文件中修改一个值就可以了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值