bondsha 发表于 2009-4-17 16:29:09

QTP的对象识别问题

首先声明:这时小虾的个人意见。。。。。希望各位大侠指出其中不足。。。。

QTP对象识别问题:
一:看看QTP回放原理:
## RUN
->脚本的继承关系下的对象名
   (只要没乱改脚本,这里就没什么问题了)
―>对象库中的继承关系对象名
(此处可能的出错有:1,继承关系不匹配2,对象名不存在3,对象名不一致)
―>对象库中的对象属性
(此处可能的出错有:4:属性不唯一)
―>匹配被测系统中的具备该属性的对象
(此处可能的出错有:5:匹配多个,6:匹配不到,7:对象不存在)
―>根据脚本中的描述来操作该对象。
## END
二:上面问题的解决方法:
1,问题1的解决方法:
即父对象的问题:
1,        使用OBJECT SPY检查对象库父对象的属性是否唯一匹配运行是的对象的属性
2,        检查对象库中的父对象的继承位置是否与脚本中描述的一致
2,        问题2的解决方法:
需添加对象名
1,        手动添加对象名:使用ADD Objiect工具
2,        重新录制这一句脚本。
3,        问题3的解决方法
需手动修改对象名
1,        在对象库中修改对象名使其和脚本中对象名一致
2,        在脚本中修改对象名使其和对象库中对象名一致
4,        问题4的解决方法
即:给予对象库中的属性不能唯一识别运行时的对象
1,        录制前在Object Identification 增加相应对象需要录制的属性;
2,        如果被测系统有多个类似的对象,可以选中:Odinal Object 或 Index Object
3,        如果还不行,开启Smart Identification
5,        问题5的解决方法
除了发生了第4个问题外,还有可能是:
1,        运行了多个被测程序。
2,        由于对象识别无法识别,而被QTP进行低级别识别了,这时需创建虚拟化对象。
6,        问题6的解决方法
运行是对象属性的值相对于录制时属性的值发生了变化,如:依赖前面操作等,
1,        需将对象库中属性的值参数化,可以使用Globel Sheet,正则表达式
2,        将前面的发生变化的值用OUTPUT拿出来,修改脚本即可。
7,        问题7的解决方法
1,        前面操作不成功,需检查前面操作。
2,        对象没有被激活。

galahadts 发表于 2009-4-18 01:16:15

不错哦
首先看下回放的报错会少很多弯路

lijinshui 发表于 2009-4-22 09:01:49

同意2楼的说法,这是经验之谈阿 自己费老劲了,其实又跟好的方法,有铁鞋踏破的感叹哦

Jun_Li 发表于 2009-4-22 09:08:33

UP

LZ good, It's best exprienceExperience is the best teacher . Thank you for you share.

hdtest001 发表于 2009-4-22 13:10:35

恩 了解下 还没有弄过:handshake

fqz_fighting 发表于 2009-4-28 11:55:46

运行是对象属性的值相对于录制时属性的值发生了变化,如:依赖前面操作等,
1,      需将对象库中属性的值参数化,可以使用Globel Sheet,正则表达式
2,      将前面的发生变化的值用OUTPUT拿出来,修改脚本即可。
这个解决办法具体怎么实施,能否给个详细的步骤啊,急用!!!先谢了!
页: [1]
查看完整版本: QTP的对象识别问题