51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

楼主: kyletang
打印 上一主题 下一主题

[求助] 想学学用描述性编程

[复制链接]

该用户从未签到

21#
发表于 2007-10-10 13:15:53 | 只看该作者
呵呵,某些人就是喜欢把无知当个性。。。。。。
回复 支持 反对

使用道具 举报

该用户从未签到

22#
发表于 2007-10-10 18:27:53 | 只看该作者
tks!
回复 支持 反对

使用道具 举报

该用户从未签到

23#
发表于 2007-10-11 14:55:35 | 只看该作者
来学习一下!!!
回复 支持 反对

使用道具 举报

该用户从未签到

24#
发表于 2007-10-18 14:24:44 | 只看该作者
thank you!
回复 支持 反对

使用道具 举报

该用户从未签到

25#
发表于 2007-10-19 12:01:59 | 只看该作者
描述性编程是不是只是补充的作用呢?应在什么时候用呢?
回复 支持 反对

使用道具 举报

该用户从未签到

26#
发表于 2007-10-27 15:34:09 | 只看该作者
转自:http://blog.csdn.net/softesting/archive/2007/09/18/1788998.aspx

在QTP中使用描述性编程是一个提高QTP脚本利用率的很好的方式。
通常QTP是通过对象库来识别不同的对象,而描述性编程是QTP另外一种能够识别对象的途径,它不依赖于对象库,通过增加一些对象的描述来识别对象的。

说明:本例子是以Flight飞机订票系统的登陆界面为测试页面进行描述的。

步骤一:录制脚本
Dialog("Login").WinEdit("Agent Name:").Set "Holly"
Dialog("Login").WinEdit("Password:").SetSecure "46ef0dc7efe5834c73673898279af1204fea51a7"
Dialog("Login").WinButton("Cancel").Click
共录制3步操作,输入Agent Name, Password, 点击Cancel按钮

步骤二:初级描述性编程
Dialog("Regexpwndtitle:=Login").WinEdit("Attached text:=Agent Name:").Set "Holly"
Dialog("Regexpwndtitle:=Login").WinEdit("Attached text:=Password:").Set “Mercury”
Dialog("Regexpwndtitle:=Login").WinButton("Class Name:=WinButton", "text:=Cancel").Click
在这里要注意有三点:
1)如果需要两个以上特性来描述一个对象,需要使用逗号(,)对描述性语言进行分割
2)使用:=来连接属性和属性值,并且:=两边不能有空格
3)使用SPY查看对象的属性名和属性值(Tools -> Object Spy)

步骤三:描述性编程提高
Dim descEditLogin
Set descEditLogin = Description.Create()
descEditLogin("Class Name").Value = "Dialog"
descEditLogin("Regexpwndtitle").Value = "Login"

Dialog(descEditLogin).WinEdit("Attached text:=Agent Name:").Set "Holly"
Dialog(descEditLogin).WinEdit("Attached text:=Password:").Set "Mercury"
Dialog(descEditLogin).WinButton("Class Name:=WinButton", "text:=Cancel").Click
在这里需要注意有两点:
1)把经常使用到的对象定义为一个对象变量,方便以后调用,减少代码工作量和错误
2)使用SPY获取对象的属性和属性值

步骤四:使用自定义的环境变量
在File>>Settings>>Environment中选择user-defined,增加一个变量
dlgLogin = “Login”

这样脚本可以被修改为:
Dim descEditLogin
Set descEditLogin = Description.Create()
descEditLogin("Class Name").Value = "Dialog"
descEditLogin("Regexpwndtitle").Value = Environment.Value("dlgLogin")

Dialog(descEditLogin).WinEdit("Attached text:=Agent Name:").Set "Holly"
Dialog(descEditLogin).WinEdit("Attached text:=Password:").Set "Mercury"
Dialog(descEditLogin).WinButton("Class Name:=WinButton", "text:=Cancel").Click
当然,参数化的方式很多,这边介绍的是使用环境变量

步骤五:从XML文件导入环境变量
<Enviroment>
       <Variable>
              <Name>dlgLogin</Name>
              <Value>Login</Value>
       </Variable>
</Environment>
可以使用手工导入,也可以使用LoadFromFile自动导入

总结:
优点是当对象的一些属性变更后,脚本更容易维护。
比如说对于一个通用对象,比如save, reset, cancel等按钮,一个页面有3个,30个页面就有90个对象,
假如save变成保存,reset变成重置,cancel变成取消,那么对象库就会产生很大的变动。
而使用了描述性编程只需要在导入的XML文件中修改一个值就可以了。
当然描述性编程的作用远远不止这些,这次只是抛砖引玉,希望大家共同进步。
回复 支持 反对

使用道具 举报

该用户从未签到

27#
发表于 2007-10-27 20:48:22 | 只看该作者
<<假如save变成保存,reset变成重置,cancel变成取消,那么对象库就会产生很大的变动。
<<而使用了描述性编程只需要在导入的XML文件中修改一个值就可以了。

使用对象库同样只需要在导入的XML文件中修改一个值~

作者的这个例子可以这样解释,作者用九阳神功催动了少林派剑法,胜过了用基础内功催动的武当派剑法,于是大呼少林剑法胜过了武当剑法。。。
回复 支持 反对

使用道具 举报

该用户从未签到

28#
发表于 2007-10-29 09:45:53 | 只看该作者
哈哈,楼上的回答总是那么精辟,很关注你们的话题,希望能给我们新手指点迷津,学习中能得到你们的帮助也不胜感激。
回复 支持 反对

使用道具 举报

该用户从未签到

29#
发表于 2007-10-29 13:21:55 | 只看该作者
好东西~谢谢LZ,收了
回复 支持 反对

使用道具 举报

该用户从未签到

30#
发表于 2007-10-29 20:58:41 | 只看该作者

好,谢谢

回复 支持 反对

使用道具 举报

该用户从未签到

31#
发表于 2007-10-30 09:13:27 | 只看该作者
呵呵,发现许多玩转了描述性编程的人并没有真正的理解对象库。
回复 支持 反对

使用道具 举报

该用户从未签到

32#
发表于 2007-10-30 09:48:33 | 只看该作者

存在既有意义

既然存在描述性编程,它便有存在的意义
我个人是不建议在平时的脚本编写中使用描述性编程的,浪费时间而且放着对象库这么方便有效的工具不用而非要去用描述性编程,感觉无法理解
但某些情况下使用描述性编程要比使用对象库方便的多,甚至特定情况下对象库无法很好的识别某个对象时,描述性编程便有了施展拳脚的机会
PS:我个人认为描述性编程可以识别的对象库应该可以可保存,两种识别对象的方式功用应该是相同的,只不过个人水平有限,不能完全用对象库而已
回复 支持 反对

使用道具 举报

该用户从未签到

33#
发表于 2007-10-30 10:22:46 | 只看该作者

回复 2# 的帖子

非常感谢。收下了
回复 支持 反对

使用道具 举报

该用户从未签到

34#
发表于 2007-10-30 10:29:18 | 只看该作者

学描述性编程,离不来此语言

学描述性编程,离不来此语言,vbscript

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

35#
发表于 2007-10-31 15:44:55 | 只看该作者
哈哈收下了,顶下把积分在赚回来
回复 支持 反对

使用道具 举报

该用户从未签到

36#
发表于 2007-10-31 17:04:55 | 只看该作者
thank you
回复 支持 反对

使用道具 举报

该用户从未签到

37#
发表于 2007-11-1 11:08:27 | 只看该作者
顶下
回复 支持 反对

使用道具 举报

该用户从未签到

38#
发表于 2007-11-5 14:22:31 | 只看该作者
ding
回复 支持 反对

使用道具 举报

  • TA的每日心情
    无聊
    2016-6-29 16:35
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    39#
    发表于 2007-11-5 17:31:32 | 只看该作者
    本人初学qtp,还是先用对象库。。
    既然是qtp自带的,我想对象库的肯定有过人的一面。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    40#
    发表于 2007-11-5 18:25:16 | 只看该作者
    THKS
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-8 08:39 , Processed in 0.078869 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表