曲则全,枉则直,洼则盈,敝则新,少则得,多则惑。
是以圣人抱一为天下式。不自见,故明;不自是,故彰;不自伐,故有功;不自矜,故长。
QTP总结(二)之属性函数和描述性编程
上一篇 /
下一篇 2009-07-25 13:34:29
/ 个人分类:测试工具
(3)对象属性函数
QTP可以通过对象的方法,获取或设置对象的属性,主要的方法函数是SetTOProperty,GetROproperty,和GetTOProperty等等,set和get,是表示获取还是设置,RO是运行的对象(Running Object),而TO是测试库的对象。
通过使用属性函数,可以使脚本更加的灵活,比如通过取出运行对象的属性(GetROProperty()),来判断是不是与预期结果相同,然后用reportor写到测试结果中,又比如对于属性在变化的对象,可以在属性中参数化,也可以用SetTOProperty的方法,动态的更改测试库中对象的属性。例:对于自带的Flight程序,插入订单后,要把此订单发传真,fax页面显示的是order No. (订单号)。因为不知道生成了多少个订单,这个订单号是动态的,可以在打开这个窗口前,用SetTOProperty将窗口的属性变成刚生成好的订单号。
(4)初识描述性编程
根据QTP的回放原理,测试库中对象的作用就是在回放时,能够通过测试库中对象的属性,来找到运行对象。而描述性编程就是将这些能找到对象的属性描述出来,脚本就可以根据这些描述,找到运行的对象。描述性编程有两种:
a.行级描述
比如计算器的例子,点击“2”这个按钮,用对象库是Window("计算器").WinButton("2").Click,如果有描述性,就是将“2”这个按钮的属性描述出来window("计算器").WinButton("text:=2","nativeclass:=button").Click,当然,因为没有强制属性,只要找到唯一匹配的即可,所以也可以把nativeclass:=Button去掉,只用text这个属性。
要注意的是:如果父对象用的是描述性编程,子对象就不能用测试库里的对象,还是要用描述性编程。
b.description对象
用description创建一个对象,这个对象的属性和要执行的对象的属性匹配,就可以找到需要执行的对象了。还是以计算器“2”这个按钮为例。
Set myDes=description.Create
myDes("text").value="2"
myDes("nativeclass").value="button"
window("计算器").WinButton(myDes).click
Set myDes=Nothing
描述性编程的作用:
●代码灵活,脚本不需要测试库,在另外的机器上运行时,不需要导入。
●在开发还在做对象的时候,可以根据文档,知道对象的属性,方法,然后就可以用描述性编程来制作脚本,而不需要等到对象制作完成。
相关阅读:
- QTP--录制和回放的基本工作原理 (june.diny, 2009-7-15)
- QTP逐步提升学习指南 (fishy, 2009-7-16)
- QTP--对象参数化的实现 (june.diny, 2009-7-19)
- QTP--属性值的获取方法 (june.diny, 2009-7-19)
- QTP使用小技巧 (51testing, 2009-7-20)
- QTP测试流程 (fishy, 2009-7-21)
- QTP9.2如何识别鼠标单击选中整条记录?? (Lola1123, 2009-7-22)
- 扼杀QTP检查点(完结篇) (51testing, 2009-7-22)
- QTP总结(一) (ermine, 2009-7-23)
- 闲话QTP——当孔明遇上QTP时 (51testing, 2009-7-24)
收藏
举报
TAG:
描述性编程
QTP