在QTP中使用描述性编程(实例)

原创 2007年09月18日 08:02:00
 
 
在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文件中修改一个值就可以了。
当然描述性编程的作用远远不止这些,这次只是抛砖引玉,希望大家共同进步。
 

QTP描述性编程几个示例

QTP描述编程几个用法示例

QTP-描述性编程

      本节我们来讨论一下关于qtp的描述性编程,说到描述性编程其实也就是对所测试的对象进行编程,所以说测试也还是离不开编程,只不过与程序员的编程对象不同罢了,可以说学习测试必须也具备很好的编程基...

QTP学习笔记之一:无法识别的对象和右键

对于无法识别的对象总结出来分为两步: 一)在对象库中得到该对象的相对位置(前提是该对象被添加到了对象库) 二)在步骤生成器中输入该对象的相对位置及相应的鼠标操作即可(会自动生成语句,要注意的是该对...

基于TestNG 与Selenium 的自动化测试设计与实施

1、引言       软件测试是关系到软件开发和维护成本的重要环节。任何软件产品在正式发布之前都必须经过严格的测试。随着计算机技术的迅速发展,软件的结构越来越复杂,同业竞争越来越激烈。为了保证软件产...
  • xinwang
  • xinwang
  • 2014年03月04日 16:33
  • 4037

QTP描述性编程简介与Java CS程序实例

QTP描述性编程简介与Java CS程序实例

【软件测试自动化-QTP系列讲座 22】 == 描述性编程 ==

这一章的内容较为简单,对描述性编程熟悉的朋友可以直接略过,为了教程的完整性还是把这章的内容补上去,在学习本章之前,请先务必完成以下讲座的学习: 【软件测试自动化-QTP系列讲座 2】 == 对象...

QTP - 10. DP (Descriptive Programming) 描述性编程.

QTP - 10. DP (Descriptive Programming) 描述性编程 Writer : Tarun Lalwani 对象识别原理:Interaction with runtim...

QTP描述性编程技术集锦

  • 2010年08月23日 09:16
  • 54KB
  • 下载

QTP描述性编程原理介绍

QTP描述性编程原理介绍       QTP的工作原理有点类似人类社会的某些场景.比如一个朋友委托你带东西给A,如果你认识A,这表明A的容貌特征以及一些联系已经在你脑海有了印象,那么你只要找到了A的...

QTP描述性编程介绍

引言: QTP的描述性编程能够摆脱测试对象库德限制,编制出更为复杂、适应力更强的测试脚本。录制方式的测试脚本创建是最简单和快捷的测试脚本开发方式,但是,它带来的问题也是明显的,就是依赖测试对象库,测...
  • nnaaqq
  • nnaaqq
  • 2016年08月29日 17:28
  • 145
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在QTP中使用描述性编程(实例)
举报原因:
原因补充:

(最多只允许输入30个字)