虚拟对象:

程序中那些行为标准类型对象的对象,但不能被QTP识别,则可把这些对象类型称为虚拟对象。并且映射到某类标准对象,例如button,check box等,QTP在测试过程中就会对这些虚拟对象模拟执行用户操作。

方法是把这些控件所在的区域定义为虚拟对象(Virtual Object)

在QTP的"http://newtours.demoaut.com/"网页中,“Sign-In”按钮是一个图像,录制的测试脚本为

Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set "wowowowowo1800"

Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").SetSecure "54617a082eda97ff1cca35347da1812ae6d686135a9784b0"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Image("Sign-In").Click 34,8
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Sync
Browser("Welcome: Mercury Tours").CloseAllTabs

如果想把“Sign-In”看成一个按钮,则可用虚拟对象的方式来实现:

操作步骤如下:

选择菜单栏中的“Tool->Virtual Objects-> New Virtual Object”,然后点击下一步按钮,然后选择button。

点击“下一步”按钮,进入下图,点击“Mark Object”,然后在订飞机中选择“Sign-In”的区域,就可以看到下图的高度和宽度。

点击“下一步->下一步”,进入到下图,可以定义虚拟对象的名称,点击完成即可。

创建完成虚拟对象后,在录制脚本时,QTP就会以虚拟对象对应的控件形式来录制测试对象,例如,重新录制订飞机系统的登录操作,则可看到专家视图中的代码变成

Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebElement("SIGN-ON").FireEvent "onmouseover"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set "wowowowowo1800"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").SetSecure "54617a9c1aaa9995aced7ba57d07b959148b45a892942d95"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").VirtualButton"sign-in").Click 23,11
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Sync
Browser("Welcome: Mercury Tours").CloseAllTabs

这时候打开对象库可以看到虚拟对象

022 UFT虚拟对象的更多相关文章

  1. UTF虚拟对象

    虚拟对象: 虚拟对象是为了让UFT识别某些不能识别的控件,把这些控件的范围定义为虚拟对象. 新建虚拟对象 管理虚拟对象 创建虚拟对象之后可通过菜单tools-Virutal Objects-Virut ...

  2. 《Entity Framework 6 Recipes》中文翻译系列 (46) ------ 第八章 POCO之领域对象测试和仓储测试

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 8-8  测试领域对象 问题 你想为领域对象创建单元测试. 这主要用于,测试特定的数 ...

  3. 对象关系映射ORM

    对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从效 ...

  4. C++中派生类对象的内存布局

    主要从三个方面来讲: 1 单一继承 2 多重继承 3 虚拟继承 1 单一继承 (1)派生类完全拥有基类的内存布局,并保证其完整性. 派生类可以看作是完整的基类的Object再加上派生类自己的Objec ...

  5. 引用的时候js不能使用虚拟路劲,调试时用排除法测试

    今天碰到2个问题,搞了半天都没明白,又不报错: 就是js的问题:-->我返回了一个json,返回的json是正确的,但是view页面接受不到这个虚拟对象. 完全懵了,不知道为什么view页面接受 ...

  6. ORM-面向对象&关系数据库

    ORM-面向对象&关系数据库 对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程 ...

  7. centos6.5下vsftpd服务的安装及配置并通过pam认证实现虚拟用户文件共享

    FTP的全称是File Transfer Protocol(文件传输协议),就是专门用来传输文件的协议.它工作在OSI模型的第七层,即是应用层,使用TCP传输而不是UDP.这样FTP客户端和服务器建立 ...

  8. 使用模拟对象(Mock Object)技术进行测试驱动开发

    敏捷开发 敏捷软件开发又称敏捷开发,是一种从上世纪 90 年代开始引起开发人员注意的新型软件开发方法.和传统瀑布式开发方法对比,敏捷开发强调的是在几周或者几个月很短的时间周期,完成相对较小功能,并交付 ...

  9. VMware的存储野心(下):虚拟卷和闪存缓存

    http://storage.chinabyte.com/187/12494187_2.shtml 在上一篇<VMware的存储野心(上):软件定义.分布式DAS支持>中,我们分别讨论了& ...

随机推荐

  1. 【nginx运维基础(3)】Nginx的编译PHP

    Apache默认是把PHP作为本身的一个模块(mod_php)来运行的,而Nginx是以FastCGI方式运行的.所以使用Nginx+PHP就是直接配置为FastCGI模式. 安装PHP 下载地址: ...

  2. LR_问题_运行场景时提示scripts you are running in invalid

    问题描述 脚本在virtual user generator中运行正常. 在Controller中运行场景时报错: the target you defined cannot be reached. ...

  3. epmap服务

    epmap是 tcp 135和udp135端口135端口的“epmap - DCE endpoint resolution”记录可以通过连接到135端口和做适当的查询列举出来. 135端口大多数情况下 ...

  4. sonar runner 2.4

    https://www.versioneye.com/java/org.codehaus.sonar.runner:sonar-runner-dist/2.4

  5. 什么是I帧,P帧,B帧

    视频压缩中,每帧代表一幅静止的图像.而在实际压缩时,会采取各种算法减少数据的容量,其中IPB就是最常见的.  简单地说,I帧是关键帧,属于帧内压缩.就是和AVI的压缩是一样的. P是向前搜索的意思.B ...

  6. mysql备份恢复数据库据/表

    备份单个数据库,只备份表,如要恢复,必须先创建一个数据库[root@s]# mysqldump -u root -p dbname1 > dbname1.sql[root@s]# mysql - ...

  7. Android Handler 避免内存泄漏的用法总结

    Android开发经常会用到handler,但是我们发现每次使用Handler都会出现:This Handler class should be static or leaks might occur ...

  8. 设置MySQL主从同步

    1. 配置主服务器 1.1 编辑my.cnf文件,配置主服务器ID. [mysqld] log-bin=mysql-bin server-id=1relay-log = relay-bin relay ...

  9. 函数buf_page_init

    /********************************************************************//** Inits a page to the buffer ...

  10. bzoj2535 2109

    做过4010这题其实就水了 把图反向之后直接拓扑排序做即可,我们可以用链表来优化 每个航班的最小起飞序号就相当于在反向图中不用这个点最迟到哪 type node=record po,next:long ...