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

软件测试之UFT/QTP零基础实例讲解视频

本系列课程纯干货,注重实用,通过工具QTP11.5介绍自动化测试,各种方法融合实例进行讲解,增加web部分实例,以及框架开发思路,常用基础部分16集 备注:请使用全屏模式观看更清晰
  • 2017年12月06日 21:54

QTP描述性编程几个示例

QTP描述编程几个用法示例
  • XiaoXiao_RenHe
  • XiaoXiao_RenHe
  • 2017-01-20 17:40:54
  • 848

QTP的描述性编程与正则表达式

在使用QTP描述性编程的方式进行脚本编写时,通常需要应用到正则表达式,relevantcodes.com的这篇文章《Descriptive Programming (DP) Concepts – 2 ...
  • Testing_is_believing
  • Testing_is_believing
  • 2010-03-22 15:17:00
  • 4411

用QTP的描述性编程高亮显示任意对象

  • 2008年07月26日 11:07
  • 11KB
  • 下载

关于QTP通过描述性编程仍抓不到页面对象的问题

在qtp测试中,如果出现页面对象获取不到的情况,我们可以适用描述性编程等方法强制获取页面元素,那么如果碰到使用以上方法仍然无法完成页面元素的操作的情况又该怎么办呢。我最近就碰到了这个问题。场景为在一个...
  • senseflower
  • senseflower
  • 2011-06-13 18:15:00
  • 602

QTP中的描述性编程

最近有几位朋友问到描述性编程的问题,那么我们今天就来探讨一下QTP中的描述性编程吧.当我们并不想QTP依靠对象库来识别对象时,我们就可以借用描述性编程的方式.把对象的属性及属性值直接搬到代码中去,让Q...
  • achang21
  • achang21
  • 2013-09-15 10:16:42
  • 1007

QTP -描述性编程实现Browser Link的highlight

          之前自己学习,一直没有意识到browser link 还有highlight这个属性,今天公司内部training,提到了link的highlight,自己回去google下,发现...
  • lym_372
  • lym_372
  • 2010-05-25 17:26:00
  • 2372

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

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

QTP中使用描述性编程

我们简单介绍一下有关功能测试的基本方法,这实际上对于所有自动化功能测试产品来说都是一样的。一般情况下,用QTP来进行功能测试的基本方法主要包括三个主要阶段:  1、创建测试或组建首先可以通过在应用程序...
  • hsknx123
  • hsknx123
  • 2008-07-29 13:55:00
  • 392

在QTP中使用描述性编程

 作者:风过无息                  2007年5月30日   背景介绍:在QTP使用中描述性编程是一个提高QTP脚本的利用率的很好的方式。术语:描述性编程,环境变量,正则表达式描述性编...
  • szstc
  • szstc
  • 2007-06-27 09:12:00
  • 1044
收藏助手
不良信息举报
您举报文章:在QTP中使用描述性编程(实例)
举报原因:
原因补充:

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