曲则全,枉则直,洼则盈,敝则新,少则得,多则惑。 是以圣人抱一为天下式。不自见,故明;不自是,故彰;不自伐,故有功;不自矜,故长。

QTP总结(一)

上一篇 / 下一篇  2009-07-23 16:13:43 / 个人分类:测试工具

QuickTest Pro是HP旗下一款基于关键字对象的自动化测试工具,主要用于回归测试和业务逻辑简单,重复量比较大的工作

(1)QTP录制回放原理

QTP录制时,先根据加载的插件,找到控件所属的父对象类,然后根据QTP对这个父对象类的录制策略,录制控件的属性。

如,win自带的计算器,点击按钮“1”。QTP先找到计算机的“1”按钮,是标准win控件的winbutton类,然后winbutton类中强制属性有nativeclass和text,如果强制属性不能唯一的区分控件,再找辅助属性,还是不能区分,再用顺序中的location或index。(对象识别策略可以通过tools→Object identification来查看)同样的道理,对于计算器这个窗口,其实只要text=“计算器”一个属性就可以了,但是因为window类强制了4个属性,所以在录制的时候,会在对象库中,保存计算器窗口的4个属性。

QTP回放,先根据脚本中的对象名,找到测试库中的对象,然后根据测试库对象中的属性,匹配唯一的要运行的控件。

对比上面计算机中的“1”,运行脚本时,在对象库中找到“1”这个对象,然后根据这个对象,找到属性值text=1,nativeclass=winbutton,然后匹配到实际运行中的1,这个按钮。那很显然,当把测试库中1这个对象的属性改成text=2的时候,因为通过属性值查找控件,所以运行时,点击的是2这个按钮。

录制回放原理的启示

·脚本中对象名一定要和测试库中对象名一致,要不然会提示在测试库中找不到对象。

·脚本中对象名不一定要和实际运行的对象的对象名一致,但是测试库中对象的属性一定要和执行的控件一致。

这就好比你打车到人民广场,司机知道人民广场这个地方,然后按照人民广场在那条路上去行驶路线,如果司机认为人民广场在浦东(测试库中的属性和要运行的不一致),那就会开车到浦东,而不是真正的人民广场了。

(2)QTP参数化

为什么要参数化

QTP是一个自动化的工具,将QTP参数化的好处就是可以讲业务和数据(或者是用例)分离开来,而且更便于维护。

参数化的内容:1.输入数据,2.对象名,3.对象属性

输入数据是指将输入到对象的内容进行参数化,典型的例子就是对文本控件框的内容进行参数化。如用户名和密码。

对象名参数化,是指在脚本中把对象名参数化掉,因为参数化后的对象名必须和对象库中的对象名一致,所以前提就是对象库中包含参数化后的对象。如对计算机的按钮进行参数化,就需要将0-9的所有空间都添加到测试库中。

对象属性参数化,这种方式比较灵活,就是对象名不做更改,而在对象库中,将对象的属性参数化,执行时根据参数化后的属性,找到执行的控件。

参数化数据类型:1.datatable,2.environment,3.random number

 


TAG: QTP 参数化

FISHY'S TRIBE 引用 删除 fishy   /   2009-09-22 12:11:24
您好,我是51Testing软件测试网的编辑,恭喜您的本篇博文被推荐至51Testing软件测试网首页发表:http://www.51testing.com/html/59/n-155659.html
感谢您关注并继续支持51Testing博客,期待您更多的优秀原创博文。
引用 删除 kaidong12   /   2009-09-07 04:42:15
写的不错,继续努力!
引用 删除 wendy42   /   2009-08-09 00:37:21
qtp录制原理是不是少了对智能选项的阐述呢?
 

评分:0

我来说两句

日历

« 2024-04-18  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 46313
  • 日志数: 33
  • 文件数: 1
  • 建立时间: 2009-07-10
  • 更新时间: 2010-12-07

RSS订阅

Open Toolbar