51Testing软件测试论坛

标题: 描述性编程中的疑问?来自xiaonan的blog [打印本页]

作者: yhzmw    时间: 2007-2-6 14:56
标题: 描述性编程中的疑问?来自xiaonan的blog
看过xiaonan的blog中关于描述性编程,有些不明白的地方
1:Dialog("text:=Login").WinEdit("attached text:=Agent Name:").Set
2:Dialog("text:=Login").WinEdit("attached text:=Password:").SetSecure "4414d23c42046da1ea3a895f1518b9c476b2b225"
3:Dialog("text:=Login").WinButton("text:=OK").Click
4:Window("regexpwndtitle:=Flight Reservation").close
第一行中的dialog后面只有“text”,而winedit后面是“attached text”。什么时候要“attached”?什么时候不需要?
第四行中的window后面是“regexpwndtitle” 为什么?不可以用“text”吗?
作者: xiaonan    时间: 2007-2-6 15:31
我这里取的只是对象库中属性及属性值.这边所要描述的是该对象的属性,每个对象的属性是不一样的.不是每个对象都有text属性.而且要给予能直接描述这个对象的属性放到脚本中,QTP在执行脚本的时候才能准确的识别到该对象.我建议你先录制这么一段脚本,然后打开对象库,和这段脚本对比一下,你就知道为什么这里取了这么些对象属性了.
作者: yhzmw    时间: 2007-2-6 17:04
如果我不先录制脚本,我怎么知道该对象有没有这个属性呢?

Window("航班预订").WinMenu("Menu").Select "分析(A);报告(R)..."
Window("航班预订").WinMenu("Menu").Select "文件(F);退出(X)"

如何取得menu对象的属性。如果用描述性编程,这两条语句该如何写?谢谢
作者: hiyizhiyu    时间: 2007-2-6 17:31
在这两个语句中WinMenu使用"Menu"来标识的
如果你脚本写多而且也经常查看对象仓库的话,你应该就清楚"Menu"是WinMenu的哪个属性了
然后按照描述的语法写就可以了
try
作者: xiaonan    时间: 2007-2-7 08:49
可以借用object spy等工具来查看对象属性
作者: 风过无息    时间: 2007-2-7 09:25
在你录制完的脚本上右键察看对象属性也一样可以看见该对象的属性的:)
作者: virgozz    时间: 2007-2-7 10:07
描述性编成就是在不依靠对象库也能正确标识对象的一个手段 ,利用对象属性做标识,如果属性不唯一则取多个属性保持它唯一标识。
作者: rivermen    时间: 2007-2-8 16:20
这是控件的属性决定的,不用你管
object spy会告诉你控件有哪些属性
作者: tails82    时间: 2007-2-8 23:36
一般是录制完以后,根据对象库中的属性,修改脚本,生成描述性脚本的
作者: yhzmw    时间: 2007-2-9 09:47
原帖由 rivermen 于 2007-2-8 16:20 发表
这是控件的属性决定的,不用你管
object spy会告诉你控件有哪些属性


我真的希望你能亲自录一下qtp自带的飞机票代理系统。看看怎么用spy抓到menu属性的。我抓了n次都没有抓到(拜托!不要再给我讲怎么样用spy了)
即使我抓到了menu的属性。如果我不管的话,怎么描述性编程?

[ 本帖最后由 yhzmw 于 2007-2-9 09:50 编辑 ]
作者: yhzmw    时间: 2007-2-9 09:48
原帖由 tails82 于 2007-2-8 23:36 发表
一般是录制完以后,根据对象库中的属性,修改脚本,生成描述性脚本的


原来描述性编程是这个样子来的啊?我还以为是直接写的呢。
我另外有点疑问:如果已经录制完成了,还干吗要用描述性脚本呢?有什么好处?
作者: xiaonan    时间: 2007-2-9 10:30
原帖由 tails82 于 2007-2-8 23:36 发表
一般是录制完以后,根据对象库中的属性,修改脚本,生成描述性脚本的


呵呵,这是在学习中才这样用法.





原帖由 yhzmw 于 2007-2-9 09:48 发表


原来描述性编程是这个样子来的啊?我还以为是直接写的呢。
我另外有点疑问:如果已经录制完成了,还干吗要用描述性脚本呢?有什么好处?


在我的文章中也提到过了,描述性编程能让QTP脱离对象库来执行脚本.在某些特殊应用的时候,可能就更方便点.比如:要针对某个对象的参数化等等.而且描述性脚本因为脱离了对象库,所以增加了脚本的可移植性.同时脚本也更具有可读性.当然也给手工写脚本提供了一个平台.

你现在的最大问题是对每个对象的属性及属性值还不熟悉,所以不知道如何去选择合适的属性做为描述性属性.随着对QTP不断学习和应用,先从录制脚本开始,慢慢深入.
作者: yhzmw    时间: 2007-2-9 10:41
楼上xiaonan解答了我的最核心的问题。谢谢
作者: nobody_pan    时间: 2007-2-9 10:48
还是从录制脚本着手吧,
走路都不稳呢,先别急着跑。嘻嘻!
作者: htot05    时间: 2007-2-9 11:00
最好的期望结果就是,QTP中只有一个调用脚本的语句,剩下的都是脚本完成的~~
用工具的最高境界就是脱离工具......
作者: cathyk    时间: 2007-2-26 16:33
深,想学习一直徘徊,没有学到什么程度




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