QTP 学习 - 对象库
QTP的关键字视图和专家视图
1、Keyword view(关键字视图)
在录制脚本的过程中,用户执行的每一个步骤,在关键字视图中记录为一行。
关键字视图直观有效,用户可以很清楚的看到被录制对象的录制层次及操作步骤。
在关键字视图中一共有4列:Item,Operation,Value,Documentation
Item:记录了所有对象
Operation:对该对象的操作
Value:对象操作所用到的值
Documentation:QTP自动生成的描述语句

2、Expert view(专家视图)
QTP在关键字视图中的每个节点在专家视图中对应一行脚本。

对于QTP来说,绝大部分的复杂操作都无法在关键字视图中实现,例如,要处理动态对象、需要定制个性化测试结果、获取对象运行时的属性值等
QTP的核心编码语言是VisualBasic Script。QTP本身也有对象库编程(ObjectProgramming)和描述性编程(DescriptiveProgramming)。这些都要在专家视图中实现。
在QTP里有很多对象模型,利用这些对象模型来表示web页面中的对象,每一个对象模型都有一个唯一标识此对象的关键属性列表。
在上方菜单栏中点击Tools---->Object Identification

一个简单的对象库编程的操作流程实例:
1、打开QTP软件
2、打开IE浏览器,输入“www.baidu.com”,页面跳转至百度首页(是打开浏览器,直接在浏览器中输入网址,并不是录制脚本)
3、点击“Resources---->Object Repository”

4、点击“Object---->Add Objects to Local”,在点击后会出现一个白色的手掌,拖动白色手掌至待添加的对象上,点击鼠标左键,这里以百度搜索框为例。

5、确认添加的对象后,点击“OK”
需要注意的是:当子对象被添加时,其父对象会一起被添加至对象库,而当父对象被添加时,如还有祖父对象,则祖父对象和父对象一起被添加至对象库,但其子对象不会被添加。

对象添加至对象库后如下图所示:

6、在专家视图中编写代码

代码编写好后在关键字视图中出现如下内容:

7.点击“Run”,脚本运行回放完毕后,百度搜索框自动输入了“西南科技大学”
如下图所示

手工添加对象的方式效率远远胜于录制添加的方式,因为用录制的方式添加对象,它们的命名是QTO自动命名的,命名很乱,很多不需要的对象也被添加进来,这样导致效率降低。
QTP 学习 - 对象库的更多相关文章
- QTP设置共享对象库
第一步:把需要加到共享对象库中的各个用例脚本的对象库,分别导出成.tsr文件. 操作方法:先用QTP打开已经录制完毕的脚本后,选择Resources-->Object Repository.然后 ...
- QTP自传之对象库编程
对象库编程是我们平时工作中使用最多的编程方式,在自动化脚本开发中起到举足轻重的作用,与描述性性编程相比,更直接和易于维护,今天就和大家简单的聊聊如何进行对象库编程. 既然是对象库编程,肯定要对已存在于 ...
- QTP 中对象操作
1.创建对象(将浏览器设置为一个对象) set oIE=createobject("internetexplorer.application") 2.将浏览器设置为可见的 oIE. ...
- QTP学习笔记--define new test object
目前在测的系统里,有图片控件,图片源都是一样的,链接地址不同(链接地址是动态变化的,不适合作为属性). QTP的识别机制是根据Index来的,复制对象之后更改Index的属性方法无效,采用define ...
- AI炼丹 - 深度学习必备库 numpy
目录 深度学习必备库 - Numpy 1. 基础数据结构ndarray数组 1.1 为什么引入ndarray数组 1.2 如何创建ndarray数组 1.3 ndarray 数组的基本运算 1.4 n ...
- MXNet 学习 (1) --- 最易上手的深度学习开源库 --- 安装及环境搭建
安装环境:Win 10 专业版 64位 + Visual Studio 2015 Community. 记录下自己在有GPU的环境下安装配置MXNet的过程.该过程直接使用MXNet release ...
- qml学习:对象和属性
qml学习:对象和属性 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 参考文档<<Qt及Qt Quick开发实战精解.pdf>> ...
- javascript学习-对象与原型
javascript学习-对象与原型 Javascript语言是符合面向对象思想的.一般来说,面向对象思想需要满足以下三个基本要求: 封装,Javascript的对象可以自由的扩充成员变量和方法,自然 ...
- UI对象库-定位元素与程序分离
1.前言 这几天有人问我,UI自动化测试中使用到的页面定位元素应该存放在哪里比较合适?我想说的是如果你使用的是PO设计模式设计测试用例的话,可以把定位元素存在每一个page页面,一个page存放对应的 ...
随机推荐
- 0913_Python初识及变量
1.Python3不需加utf-8,Python必须加utf-82.单行注释用#,多行注释用""" """3.变量:只能由字母.数字.下划线 ...
- 一个class标签里面有多个属性时的提取标签
<div class="uibox-con carpic-list03 border-b-solid"> #即这个标签同时满足三个class:“uibox”.“ca ...
- ECB cspk7 加密
public function test(){ $param = input('param.'); // $input = 'userid=7&gameid=100107&buycou ...
- iOS tableView分割线高度自定义
1.系统自带的集中分割线的形式 myTableView.separatorStyle=UITableViewCellSeparatorStyleNone;(这个是去掉所有分割线)可以通过这个来设置 2 ...
- 【转】@RequestBody注解出现的三点错误
错误1 { "timestamp": 1529747704259, "status": 415, "error": ...
- C#泛型中的抗变和协变
在.net4之前,泛型接口是不变的..net4通过协变和抗变为泛型接口和泛型委托添加了一个重要的拓展 1.抗变:如果泛型类型用out关键字标注,泛型接口就是协变的.这也意味着返回类型只能是T. 实例: ...
- java.math.*;(一)
package com.test; /* Math类: java.lang.Math类中包含基本的数字操作,如指数.对数.平方根和三角函数. java.math是一个包,提供用于执行任意精度整数(Bi ...
- Python全栈之路----常用模块学习----模块的种类和导入方法
什么是模块? 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码 ...
- NIO、BIO、AIO区别
一.同步阻塞I/O(BIO): 同步阻塞I/O,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,可以通过线程池机 ...
- Spark Streaming 'numRecords must not be negative'问题解决
转载自:http://blog.csdn.net/xueba207/article/details/51135423 问题描述 笔者使用spark streaming读取Kakfa中的数据,做进一步处 ...