萧萧的枫林,萧萧的我

QTP中Index,CreationTime属性特点的总结

上一篇 / 下一篇  2009-07-22 21:15:04 / 个人分类:QTP

QTP中我们常常会看到Index,CreationTime属性出现在对象中,
但是往往我们无法正确理解这2个属性的含义和变化规律,就会给我们的测试带来很多困惑.
(曾经我也深深困惑过!还求助无门)

下面我就来说说我使用过程中的总结吧,相信用QTP做WEB测试的人,一定都有这方面的困惑

总结1:
   Index和CreationTime属性的特点是一样的,唯一不同的地方是,index一般用来表示页面中的对象,元素的先后创建,CreationTime只用来表达浏览器(还有其他的window)相对于QTP启动时间上的顺序关系.

总结2:
   index是一个辅助识别属性
(有时可以没有"在已经唯一标识一个对象的情况下"有时又必须"某些对象什么属性都相同")
这就决定了在"相同描述的对象"出现多个的情况下就一定有index,在一个对象现有"描述属性"已经能唯一标识一个对象的情况下,index是不会出现的.此时的index属性QTP里面标识为"none"
比如"性别=男"这个"描述属性"在"全家"里因为有多个,所以就一定要Index来辅助描述.
那么"称呼=爸爸"这个"描述属性"在"全家"里只有1个,所以我们说"爸爸"就马上知道是谁

总结2:
   index在对象是唯一的情况下,没有任何意义和价值
也就是说,只要这个对象在这个页面中确实是唯一的,那么无论你的index是什么值都能够正确识别这个对象
比如当前页面中只有一个叫"风景"的图片,那么这个"风景"图片在任何index属性下都能正确识别

总结3:
   当index,CreationTime属性在对象库中为none的时候,不能使用SetTOProperty赋值index属性,
这个现象的原因目前还不明,不过现象是赋值能够成功,
但是你无法使用赋值后index属性来正确识别你想像中的对象.


总结4:
   index属性是QTP自己标识的.和程序编程里的index无关.
学过编程的人,容易带入编程里面的概念,然而在QTP中,index属性是QTP自动生成的,和程序编程的时候使用的index是没有任何关系的,
index属性的生成是按照相同对象出现的顺序来排列的,就是你用ChildObjects方法获得的对象集合中item(i)索引的顺序.

总结5:
   index属性我们只能尝试改变对象库中的,不能改变实际对象
因为index属性是由QTP自动标识的,而实际对象是没有index属性的,所以我们不能使用SetROProperty方法尝试改变实际对象的index属性,只能使用SetTOProperty方法改变对象库中的对象,让QTP识别.

最后希望对那些还困惑在其中的同仁有少许帮助,我以前在index为none时候用SetTOProperty方法无效上面可是花了好多时间理解


TAG:

要走就走100年 引用 删除 cswalkman   /   2009-07-24 15:45:43
Snail's Home 引用 删除 FLY000   /   2009-07-24 12:55:13
测试也是一种人生吗? 引用 删除 欧阳   /   2009-07-24 09:35:29
不错,学习了,
kakamissyou的测试小栈 引用 删除 kakamissyou   /   2009-07-23 23:25:22
总结4有用,其它的我都知道。谢谢了。
kakamissyou的测试小栈 引用 删除 kakamissyou   /   2009-07-23 23:25:13
3
 

评分:0

我来说两句

我的栏目

日历

« 2024-04-29  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 9648
  • 日志数: 9
  • 图片数: 1
  • 建立时间: 2008-04-28
  • 更新时间: 2010-05-28

RSS订阅

Open Toolbar