不把对象存储到对象库中,而是在测试脚本中告诉QTP要操作对象的属性,然后QTP根据这些信息到真实的系统中去寻找对象,然后把操作施加在该对象上。
描述性编程和传统QTP脚本的区别:描述性编程把需要识别的对象属性从对象库转移到脚本里面,通过脚本里面的特殊格式,告诉QTP识别对象的方法。
描述性编程的语法:
micClass(“property1:=value1”,“property2:=value2”)
micClass标识某个对象的类别,括号里面通过用property:=value的形式告诉QTP识别该对象的必要属性。
在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的工作原理有点类似人类社会的某些场景.比如一个朋友委托你带东西给A,如果你认识A,这表明A的容貌特征以及一些联系已经在你脑海有了印象,那么你只要找到了A的住所,那么这个任务就很容易...
### QTP描述性编程实现参数化 #### 一、QTP描述性编程概述 QTP(Quick Test Professional),现在称为UFT(Unified Functional Testing),是一款非常强大的自动化测试工具,广泛应用于功能回归测试。在QTP中,...
【QTP描述性编程】是自动化测试工具QuickTest Professional(现在称为UFT,Unified Functional Testing)中的一个重要概念。QTP,作为一款功能强大的自动化测试工具,由HP(现为Micro Focus)开发,广泛应用于软件的...
描述性编程是QTP提供的一种高级功能,允许测试人员使用更精确的属性来定位和操作对象,即使这些对象的默认识别属性在测试过程中可能会变化。 **使用描述性编程的时机** 在以下情况下,你可能需要使用描述性编程: ...
在QTP中,描述性编程(Descriptive Programming)是一个重要的概念,它为自动化测试提供了一种灵活的、不依赖于对象库的方式来定位和操作应用程序中的对象。 描述性编程的核心思想是将需要识别的对象的属性直接写入...
【QTP描述性编程技术集锦】 自动化功能测试工具QTP(QuickTest Professional)是业界广泛采用的一种企业级测试解决方案,它允许用户自动化测试应用程序的功能。描述性编程是QTP中的一项重要技术,使得测试脚本可以...
QTP描述性编程指南
### QTP描述性编程 #### 一、QTP与对象库的基本概念 在自动化测试工具QTP(Quick Test Professional)中,对象库是存放被测试应用程序界面元素的地方。这些元素通常被称为“对象”。QTP通过录制用户的交互行为,...
### QTP描述性编程技术详解 #### 一、概述 QTP(Quick Test Professional),现称为UFT(Unified Functional Testing),是由HP(惠普)公司推出的一款自动化测试工具,广泛应用于功能测试、回归测试等场景。QTP的...
用QTP的描述性编程高亮显示任意对象
### QTP描述性编程介绍 #### 一、前言与背景 自动化测试是现代软件开发流程中的关键环节,旨在提高测试效率与准确性。Mercury公司旗下的QuickTest Professional(QTP),作为一款先进的自动化测试工具,因其强大的...
QTP9.0引入了描述性编程,这是一种允许用户通过指定对象的属性和方法来操作对象的技术,而不是依赖于对象库中的默认识别方式。以下是对文档中提及的知识点的详细解释: 1. **对象属性获取**:在QTP中,使用`Object ...
本主题将深入探讨QTP中的描述性编程、参数化、读取Excel以及与数据库的交互等核心知识点。 1. **描述性编程**: 描述性编程(Descriptive Programming)是QTP的一种编程方式,它允许测试者用自然语言式的语句来...
可以根据QTP内导出的TSR文件生成XML后进行分析,再将脚本内的对象都改为描述性对象
本文将详细介绍如何在QTP中使用描述性编程,并通过实际案例来说明这一过程。 #### 二、描述性编程概念与原理 ##### 2.1 概念 描述性编程是一种在QTP中编写脚本的方法,它允许测试人员通过指定对象的属性而不是...
### QTP从零学起之八描述性编程 #### 一、描述性编程的作用与应用场景 **描述性编程**是Quick Test Professional (QTP) 中一种重要的自动化测试技术,它允许用户通过描述对象而非直接引用对象来执行操作。这对于...