11.5  QTP对象识别

本节将讲解QTP识别对象的原理。

1.两种测试对象和仓库对象

有两种对象,一个是TestObject对象,另一个是RunTime Object对象。TestObject对象是指对象库中的被测试中的控件对象,而RunTime Object是指被测试系统中的实际对象。

在库文件中定义仓库对象,其中存有实际对象的特征属性的值。在脚本回放时,QTP会根据脚本中的对象名字,在对象库里找到对应的仓库对象。然后根据仓库对象的特征属性描述,在被测试软件中搜索到相匹配的实际对象,***就可以对实际对象进行操作了。

仓库对象一般在录制/编写脚本时加入仓库文件,它不仅可以在录制编写时进行修改,也可以在运行过程中进行动态修改,以匹配实际对象。

以下是几个常用的函数。

GetTOProperty():取得仓库对象的某个属性的值。

GetTOProperties():取得仓库对象的所有属性的值。

SetTOProperty():设置仓库对象的某个属性的值。

GetROProperty():取得实际对象的某个属性的值

例如,一个页面中有很多待检查的记录,每条记录右边都有一个"Check"按钮,用来检查各条记录。记录个数不定,所以"Check"按钮的个数也就不定,一个Edit显示记录个数。要对每条记录进行检查,也就是要单击每个"Check"按钮。由于"Check"按钮个数不定,录制后的脚本回放中会出现问题。可以通过录制一个按钮对象,对它设有两个特征属性 label=OK和index=0,然后用下面的脚本,就可以完成测试:buttonNum=CInt(JavaWindow("Test").JavaEdit

("RecordNum"). GetRO Property ("value")) ForbuttonIndex=0to buttonNum - 1 JavaWindow

("Test").JavaButton ("Check"). SetTOProperty

("index", buttonIndex) Java Window("Test").

JavaButton("Check").Click Next

2.两种对象的接口

QTP对用户提供了两种操作对象的接口,一种是对象的封装接口;另一种是对象的自身接口。

对象的封装接口是QTP为对象封装的另一层接口,它是QTP通过调用对象的自身接口来实现的。对象的自身接口是对象控件本身的接口。

自身接口需要在对象名后面加"object"再加上"属性名"或"方法名";封装接口就不需要在对象名后面加"object"。

例如,对自身接口对象的操作:对象.object.自身属性

对象.object.自身方法

对象.GetROProperty("封装属性" )

对象.封装方法()

对封装接口的操作:对象.GetTOProperty("封装属性")

对象.GetTOProperties();获得所有封装属性的值

对象.SetTOProperty("封装属性","封装属性值")

例如,通过QTP封装接口操作JavaEdit对象。

设置JavaEdit的内容:JavaDialog("Add DDN").JavaEdit("DDN Name").Set "DDN1"

读取JavaEdit的内容:JavaDialog("AddDDN").JavaEdit("DDNName").

GetROProperty("value")

如果通过JavaEdit的自身接口,脚本如下。

设置JavaEdit内容:JavaDialog("Add DDN").JavaEdit("DDN Name").object.setText("DDN1")

读取JavaEdit内容:JavaDialog("Add DDN").JavaEdit("DDN Name").object.getText()

JavaEdit对象的封装接口的操作是通过调用对象的自身接口实现的。

QTP默认使用对象的封装接口录制。封装接口不如自身接口丰富,我们在脚本中可以只调用对象的自身接口。

使用对象查看器(Obejct Spy)查看对象时,在对话框中会列出接口及其属性和方法。可以在对话框中选择"Run-time Object Properties"和"Test Object"单选按钮来切换显示对象的自身属性和方法还是对象的封装接口的属性和方法,选择这两个单选按钮时的不同的界面如图11-10所示。

(点击查看大图)图11-10  对象封装属性

【责任编辑:云霞 TEL:(010)68476606】

点赞 0

qtp11与java_11.5 QTP对象识别相关推荐

  1. QTP11使用DOM XPath以及CSS识别元素对象

    QTP11使用DOM XPath以及CSS识别元素对象 我们知道,像DOM,Html,CSS,XPath等对对象的识别策略广泛运用于一些开源的工具,例如:Selenium,Watir,Watir-We ...

  2. 2_Selenium对象识别

    1 准备工作 firebug和firepath 我们使用xpath进行元素定位,所以需要安装firefox的两个插件,帮助编写xpath html知识 在编写xpath的时候,需要查看html代码,所 ...

  3. 如何利用Tensorflow和OpenCV构建实时对象识别程序?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 引言 在本文中,将逐步介绍如何使用Tensorflow(TF)的新 ...

  4. 2021-06-04 Java对象在Hibernate下的4种状态和Session相关方法以及对象识别

    注:集成开发环境软件:MyEclipse(2017破解版)和mySQL(MySQL Server 8.0) 一.Query(查询) (1)Query(查询)接口允许你在数据库上执行查询并控制查询如何执 ...

  5. 基于OpenCV实现的HOG+SVM自定义对象识别

    1,前言 该案例是很久以前学习课程,最近突然想起来了就实现记录一下.在深度学习逐渐流行的今天,HOG+SVM自定义对象识别的用武之地可能不是很大了,但是在固定场景下,自定义对象如果在图像中的大小较为恒 ...

  6. 深度神经网络的对象识别和定位算法

    YOLO(You Only Look Once)是一种基于深度神经网络的对象识别和定位算法,其最大的特点是运行速度很快,可以用于实时系统.现在YOLO已经发展到v3版本,不过新版本也是在原有版本基础上 ...

  7. PCL 基于对应点分类的对象识别

    2019.11.18更新 #include <pcl/io/pcd_io.h> #include <pcl/point_cloud.h> //点云类型头文件 #include ...

  8. Python-OpenCV 处理图像(六):对象识别

    0x00. 特征识别 这里主要用到两个函数: GoodFeaturesToTrack 和 extractSURF GoodFeaturesToTrack: 在图像中寻找具有大特征值的角点. SURF算 ...

  9. Python-OpenCV 处理图像(六)(七)(八):对象识别 图像灰度化处理 图像二值化处理

    为了加快处理速度,在图像处理算法中,往往需要把彩色图像转换为灰度图像. 0x00. 灰度图 灰度数字图像是每个像素只有一个采样颜色的图像,这类图像通常显示为从最暗黑色到最亮的白色的灰度. 灰度图像与黑 ...

最新文章

  1. 2022-2028年中国塑料零部件行业市场发展规模及市场分析预测报告
  2. servlet必知细节(二)--servlet执行过程
  3. elasticsearch版本不同,批量查询也不相同
  4. 三极管工作原理_4种集电极-基极负反馈式三极管偏置电路的工作原理分析
  5. php 文档转html格式文件,php学习笔记之将word文档转化为HTML文件
  6. 水声被动定位中的机器学习方法研究进展综述
  7. 信息学奥赛一本通(1087:级数求和)
  8. 使用Kotlin的Android Toast
  9. Laravel Pipeline解读
  10. webStorm 修改 JavaScript 版本为 ES6
  11. APP性能测试之jmeter
  12. 一个超厉害的在线画图工具
  13. (转载)基于联盟链区块链的九个方面对比
  14. 大数元科技牵手中央财经大学 助力财税金融体制改革
  15. python抓取QQ空间博客文章
  16. shell之数学运算
  17. vue3中导出excel表格
  18. STARK Low Degree Testing——FRI
  19. 如何解决:ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。
  20. Fabric链码实战(二)公民身份信息

热门文章

  1. 【SICP练习】149 练习4.5
  2. python traceback_Python中的traceback模块
  3. 一个Web系统的界面设计和开发.2
  4. 欢迎使用CSDN-markdown编辑器.
  5. ​ICLR 2023 | 表达力 v.s. 泛化性:我们真的需要更强大的GNN吗?
  6. 【学习笔记】 matlab数字信号处理(四)信号的频域分析
  7. python报错:ValueError: not enough values to unpack (expected 6, got 3)
  8. win7_32位安装python及pycharm
  9. NEC拟6年内使人工智能业务收入达到2500亿日元
  10. 多元线性回归-Part2(以医疗费用为例)