查看完整版本: 面试问到的:QTP的工作原理?

baby2dragon 2008-5-6 11:24

面试问到的:QTP的工作原理?

前些天在一家公司面试时问到关于QTP的工作原理,因为本人未从事过软件测试工作,所以对这个问题在头脑里面没有什么概念,结果就回答了使用QTP的流程,有哪位朋友知道QTP的工作原理是什么?

xiaoyaoke 2008-5-6 11:27

HP?呵呵,这个问题我也被问到了

baby2dragon 2008-5-6 11:33

不是HP,是家软件外包公司

baby2dragon 2008-5-6 11:54

怎么没人回答呢?都没有遇到这样的问题吗?哪位高手知道啊?

zbyufeifei 2008-5-6 12:04

就是问你:QTP识别对象的原理以及操作对象的原理

Search一下,有相关的贴子

baby2dragon 2008-5-6 12:12

多谢zbyufeifei!!因为没有实际经验,所以连问的问题是什么意思都没有搞懂!:L
你是51testing就业学员吗?是去培训过吗?

walker1020 2008-5-6 12:14

Please look in QTP  User's Guide to find its answer

baby2dragon 2008-5-6 12:16

Thanks!

liyuan_400 2008-5-9 23:15

工作原理:录制的时候识别用户的操作过的对象,把这些对象的基本属性存放在对象库中,回放脚本时,如果脚本是对某个对象进行了
操作,QTP到对象库中查询对应对象的属性,然后和真实的被测的真实系统进行匹配,匹配成功,把操作施加到该对象上.

walker1020 2008-5-10 23:33

还有,如果没有完全匹配的对象,QTP就启用智能识别机制来寻找相似的对象。

lyscser 2008-5-11 00:06

[quote]原帖由 [i]liyuan_400[/i] 于 2008-5-9 23:15 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=965763&ptid=113900][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]
工作原理:录制的时候识别用户的操作过的对象,把这些对象的基本属性存放在对象库中,回放脚本时,如果脚本是对某个对象进行了
操作,QTP到对象库中查询对应对象的属性,然后和真实的被测的真实系统进行匹配,匹配成 ... [/quote]


你这不是原理,是工作方式;我起初被问到也很痛苦,就B4他们,我心想你问这没味道的问题干吗啊……
后来索性就忽悠他们:

[color=Blue][size=4]“举个例子,例如JAVA吧,这个QTP呢是使用一种(诡异的)方法获取了JS或者API的类和他所有的属性以及支持的方法,记录下来,就像LR截断APP和WEB的Request和Response一样,哎,对了,您知道LR吧……不好意思,扯远了,继续哈;而且这个QTP他还自带了这个API中很多不可见或未实现的方法,以备编辑……对每种特殊的语言会有特殊的插件提供这些(QTP的)方法来实现……”[/size][/color]

我说了是忽悠哈,但是至今没几个反驳我的……估计也没有人敢,不然早就把我Kick了,哈哈……最好不要在高手面前胡扯,哈哈,要是在HP、IBM面试这么忽悠可就惨了
问这个问题主要是因为很多人本身自己对自动化工具理解的不是很好,不然应该就不会问了……

[[i] 本帖最后由 lyscser 于 2008-5-11 00:13 编辑 [/i]]

jackymail 2008-5-12 18:24

工作原理简单点说就是 通过把QTP安装到电脑上,然后用生成脚本,回放来回归测试

对象识别原理 获取hwnd,然后判断ui属性,逐个判断,然后逐层递归,最后获取每个对象的所有层面的属性,跟对象库里的属性进行比较,匹配则应用,不匹配则智能识别(重新启动识别过程,过滤出一些符合条件的,进行判断后找到唯一匹配项)

复杂点说: 把对象从被测软件ui中读取出主要特征,存入对象库,回放时在被测试软件中寻找指定对象,赋予对象一些方法,方法为windows win32或者web上的一些activex控件的通用方法(或者javascript应用于一些未支持的事件,比如link.click), 微软控件对外的接口,把其中一些方法进行封装,成为qtp自己的方法,比如getroproperty=对象.object.value ,然后运用这些方法属性驱动被测试对象完成一些指定的动作。对于任何一个add-in都是先找到人家的对外接口,然后拿过来封装,需要的时候去调用接口事件,也就成为了QTP的动作。

此外还有数据驱动 xx驱动的,每种驱动方式都大同小异,瞎JB侃呗。。。怕啥的阿,反正谁都不明白。面试的人肯定也不明白啥,就是随便问问

[[i] 本帖最后由 walker1020 于 2008-5-13 21:48 编辑 [/i]]

xiaoyaoke 2008-5-12 18:35

哈哈,就喜欢看jackymail大哥回答问题

lantianwei 2008-5-12 20:47

回复 13# 的帖子

还有一类插件是打桩型的,这种方式处理能力更强大,比如WR的DELPHI插件,ST中的INTERNAL EXTENTION KIT都是这种工作方式

[[i] 本帖最后由 lantianwei 于 2008-5-12 20:48 编辑 [/i]]

hellen_ma 2008-5-14 18:38

还好至今未被问到:L

sogoc 2008-5-14 20:48

QTP采用关键字视图的测试原理

kakamissyou 2008-5-14 20:55

你说的是钩子吗?

[quote]原帖由 [i]lyscser[/i] 于 2008-5-11 00:06 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=965998&ptid=113900][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]



你这不是原理,是工作方式;我起初被问到也很痛苦,就B4他们,我心想你问这没味道的问题干吗啊……
后来索性就忽悠他们:

“举个例子,例如JAVA吧,这个QTP呢是使用一种(诡异的)方法获取了JS或者API的类 ... [/quote]

你说的是钩子吗?

如果是,楼主也瞎JP能忽悠人!

[[i] 本帖最后由 kakamissyou 于 2008-5-19 20:45 编辑 [/i]]

lyscser 2008-5-18 10:06

钩子是什么?

walker1020 2008-5-18 23:22

钩子是获得 底层操作的一种技术,具体在 Google里面搜索到

lijiang816 2008-5-19 14:22

不错,又学到了点东西

kakamissyou 2008-5-19 20:49

回复 18# 的帖子

钩子是windows操作系统的一种技术。

简单的说就是你干什么事情的时候,它都先把你截取到,这样他就知道你干了什么。然后继续

把你送去执行!重要的在前面!

我不知道我解释的对不对!只是听以前公司程序员说过!当时问他我想要实现某个东西怎么做

他告诉我应该用钩子!然后我也问了什么叫钩子。如上云云!

wang7931_cn 2008-5-20 10:22

随便看看,瞎转转!

Simatu 2008-5-20 17:51

钩子技术。。。。

topor 2008-5-21 14:19

学习了。。。

lyscser 2008-5-21 20:48

[quote]原帖由 [i]kakamissyou[/i] 于 2008-5-14 20:55 发表 [url=http://bbs.51testing.com/redirect.php?goto=findpost&pid=969374&ptid=113900][img]http://bbs.51testing.com/images/common/back.gif[/img][/url]


你说的是钩子吗?

如果是,楼主也瞎JP能忽悠人! [/quote]

唉……文明!
如果就说QTP的原理是对象识别的话,可以说高深也可以说肤浅……
是不是钩子无所谓,技术原理是差不多的,主要针对Window API,这些比较底层的东西偶不太懂
页: [1]
查看完整版本: 面试问到的:QTP的工作原理?