描述编程中的Description对象

上一篇 / 下一篇  2007-06-29 14:02:18 / 个人分类:QTP

QTP Professional帮助文件中的Index页输入关键字"descrīptive programming",就可以找到主题为"Using Programmatic Descrīptions"的文章。这篇文章介绍了描述编程,并且提及描述编程的两种表现形式。
There are two types of programmatic descrīptions. You can either list the set of properties and values that describe the object directly in a test statement, or you can add a collection of properties and values to a Descrīption object, and then enter the Descrīption object name in the statement.

其中的第一种形式是在测试语句中直接列出描述对象的属性和属性值的集合,易于理解和使用。例如,描述某个页面上的CheckBox可以写成如下形式,其中Prop和Value集合是识别该对象的属性和值集合:
Browser(**).Page(**).WebCheckBox("Prop01:=Value01","Prop02:=Value02",...).Set "ON"

第二种形式则是把描述对象的属性和属性值的集合加入到Descrīption对象中,然后在测试语句中使用这个Descrīption对象。还是上面的例子,使用了Descrīption对象后语句变成了:
Dim objDesc
Set ōbjDesc = Descrīption.Create()
objDesc("Prop01").Value = "Value01"
objDesc("Prop02").Value = "Value02"
...
Browser(**).Page(**).WebCheckBox(objDesc).Set "ON"

其实这两种形式没有什么区别,但是各有特点。前者形式简洁但是可读性差些,后者形式复杂但是可读性好些。当识别对象的属性和值集合内容不多的时候,还是用前者比较方便。

那什么时候用Descrīption对象比较好呢,就像某个帖子讨论过的,Descrīption对象和ChildObjects方法结合使用比较体现优点。下面的例子取自我们在项目中开发的测试脚本,目的是在一个Table中遍历样式为"actions.gif"且类型为"Image"的所有对象。
Dim objDesc, objImgs
Set ōbjDesc = Descrīption.Create()
objDesc("micclass").Value = "Image"
objDesc("file name").Value = "actions.gif"
Set ōbjImgs = Browser("Browser").Page("Enterprise").WebTable("Detail View").ChildObjects(objDesc)
Dim intCount, i, strHref, strHref
intCount = objImgs.Count - 1
For i = 0 To intCount
    strHref = objImgs(i).GetROProperty("href")
Next

其中的关键是Descrīption对象的创建
Set ōbjDesc = Descrīption.Create()

对象的属性-值集合,其实就是人为设定的QTP用来识别某类对象的属性和值特征。这个例子里面就是
objDesc("micclass").Value = "Image" '对象类型为Image
objDesc("file name").Value = "actions.gif" '对象使用的文件名为actions.gif
这些属性-值都可以用SPY工具得到

最后加上ChildObjects方法
Set ōbjImgs = Browser("Browser").Page("Enterprise").WebTable("Detail View").ChildObjects(objDesc)
将所有符合Descrīption对象描述的特征的那些对象从WebTable("Detail View")里面取出来。objImgs即包含在WebTable中的所有符合Descrīption描述的所有对象集合。

TAG: QTP

My space 引用 删除 sw3300255   /   2011-09-29 17:59:12
学到挺多!
Victor's Testing Career 引用 删除 winfood   /   2007-07-16 11:20:36
如果“真正的 descrīptive programming 不是这样用的”,那就给例子呗。
Gary Ye的个人空间 引用 删除 garyyes   /   2007-07-15 15:22:46
真正的 descrīptive programming 不是这样用的。^_^
杯底的茉莉 引用 删除 hhxwxg   /   2007-07-10 10:29:25
赞一下!!
 

评分:0

我来说两句

我的栏目

日历

« 2024-04-29  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 21099
  • 日志数: 17
  • 图片数: 1
  • 建立时间: 2007-04-26
  • 更新时间: 2007-09-06

RSS订阅

Open Toolbar