曲则全,枉则直,洼则盈,敝则新,少则得,多则惑。 是以圣人抱一为天下式。不自见,故明;不自是,故彰;不自伐,故有功;不自矜,故长。

QTP总结(二)之属性函数和描述性编程

上一篇 / 下一篇  2009-07-25 13:34:29 / 个人分类:测试工具

(3)对象属性函数

QTP可以通过对象的方法,获取或设置对象的属性,主要的方法函数是SetTOProperty,GetROproperty,和GetTOProperty等等,set和get,是表示获取还是设置,RO是运行的对象(Running Object),而TO是测试库的对象。

通过使用属性函数,可以使脚本更加的灵活,比如通过取出运行对象的属性(GetROProperty()),来判断是不是与预期结果相同,然后用reportor写到测试结果中,又比如对于属性在变化的对象,可以在属性中参数化,也可以用SetTOProperty的方法,动态的更改测试库中对象的属性。例:对于自带的Flight程序,插入订单后,要把此订单发传真,fax页面显示的是order No. (订单号)。因为不知道生成了多少个订单,这个订单号是动态的,可以在打开这个窗口前,用SetTOProperty将窗口的属性变成刚生成好的订单号。

(4)初识描述性编程

根据QTP的回放原理,测试库中对象的作用就是在回放时,能够通过测试库中对象的属性,来找到运行对象。而描述性编程就是将这些能找到对象的属性描述出来,脚本就可以根据这些描述,找到运行的对象。描述性编程有两种:

a.行级描述

比如计算器的例子,点击“2”这个按钮,用对象库是Window("计算器").WinButton("2").Click,如果有描述性,就是将“2”这个按钮的属性描述出来window("计算器").WinButton("text:=2","nativeclass:=button").Click,当然,因为没有强制属性,只要找到唯一匹配的即可,所以也可以把nativeclass:=Button去掉,只用text这个属性。

要注意的是:如果父对象用的是描述性编程,子对象就不能用测试库里的对象,还是要用描述性编程。

b.description对象

用description创建一个对象,这个对象的属性和要执行的对象的属性匹配,就可以找到需要执行的对象了。还是以计算器“2”这个按钮为例。

Set myDes=description.Create

myDes("text").value="2"

myDes("nativeclass").value="button"

window("计算器").WinButton(myDes).click

Set myDes=Nothing

描述性编程的作用:

●代码灵活,脚本不需要测试库,在另外的机器上运行时,不需要导入。

●在开发还在做对象的时候,可以根据文档,知道对象的属性,方法,然后就可以用描述性编程来制作脚本,而不需要等到对象制作完成。


TAG: 描述性编程 QTP

FISHY'S TRIBE 引用 删除 fishy   /   2009-09-22 12:12:06
您好,我是51Testing软件测试网的编辑,恭喜您的本篇博文被推荐至51Testing软件测试网首页发表:http://www.51testing.com/html/59/n-155659.html
感谢您关注并继续支持51Testing博客,期待您更多的优秀原创博文。
 

评分:0

我来说两句

日历

« 2024-04-18  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 46312
  • 日志数: 33
  • 文件数: 1
  • 建立时间: 2009-07-10
  • 更新时间: 2010-12-07

RSS订阅

Open Toolbar