51Testing软件测试论坛

标题: QTP识别的机理是什么?有没有相关资料? [打印本页]

作者: kursk    时间: 2007-6-11 11:28
标题: QTP识别的机理是什么?有没有相关资料?
这是一个很困惑我的问题,QTP识别的机理是什么?为什么有时测试,通过录制的脚本可以正确识别,但是使用同样的属性(通过查看生成E REPORT看QTP使用了哪些属性来识别对象),使用描述性编程又不可以识别?

还有很多很多的疑惑都和QTP的识别机理有关,比如通过对象库识别和通过描述性编程识别有什么不同?等等

我需要了解这方面的情况,请问有没有相关的资料,或讲座培训?
作者: rivermen    时间: 2007-6-11 13:09
反编译
作者: kursk    时间: 2007-6-11 14:09
能否解释得详细些?
作者: rivermen    时间: 2007-6-11 15:54
为什么QTP录制的过程当中需要相应的插件支持?因为录制的前提就要能够识别,这其实就是一个反编译的过程

比如VB的插件,在录制VB程序的时候,QTP自动就能识别VB系统中的控件,就像返回开发时的状态。

通俗的例子,我们更美国人进行交流,能够进行正常沟通的前提,是我们之间有共通的一种语言,这时候这种共通的语言就类比为插件,老美和我就是开发和测试工具的两端。

如果没有相应的插件,去录制,当然就好像一个不懂外语的人去听外国话一样了。

有了相应的插件,在录制的过程中才能对用户进行的各种操作进行解析,并把识别出来的对象,存放在对象库里。将来回放的时候,根据对象库里的对象,辅以录制的脚本代码,达到回放的最终木地。
如果对象库里没有这些对象,回放的时候就会报错“对象不能识别”,这就是为什么QTP脚本不能仅仅依靠代码进行传播的原因了(ROBOT 可以)


描述性编程则是另一种识别了:
举个例子:
对象库识别就好像是根据一个人留下的整套档案去找人(姓名,年龄,国籍,住址)
描述性编程就好像是根据某个人身上的一系列特征,去找人(脚底有三颗痣)

如果你提供的这个特征(对象的属性)并不是它独有的,则回放的时候,当然也会报错,机器不会知道把脚本中的代码赋于那一个对象之上。

希望我说的不会让你更糊涂,也欢迎其他同学参与讨论

[ 本帖最后由 rivermen 于 2007-6-11 15:57 编辑 ]
作者: xiaonan    时间: 2007-6-11 16:28
呵呵,楼上分析的不错.
作者: yuandjing    时间: 2007-6-11 16:58
“rivermen ”正解,通过对象库实现
作者: kursk    时间: 2007-6-12 15:14
rivermen ,你举的这些例子我都从帮助里阅读过,但可惜我还是不能理解QTP的识别机理,这可能与我对计算机的工作原理还不够清楚有关。

不过我第一次听过QTP通过反编译来识别这个原理,这也算是有一些收获。谢谢了。
作者: lx__9786    时间: 2007-7-11 02:24
sdlkfj1
作者: fengle    时间: 2007-7-11 11:35
一直也对QTP的识别机理迷惑中,听了4楼的解释,有一点感觉了。谢谢!




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2