软件测试


网站首页 | 软件测试论坛 | 软件测试培训 | 软件测试博客 | 软件测试杂志 | 软件测试沙龙 | 软件测试下载 | 软件测试顾问
业界新闻 | 软件测试人才 | 软件测试技术 | 软件测试工具 | 行业软件测试 | 软件测试管理 | 软件质量专栏 | 软件开发专栏
当前位置:首页>>软件测试工具>>Mercury>>正文
QTP识别和操作对象的原理
文章出处:51testing论坛 作者:yabest 发布时间:2007-03-28

    QTP为用户提供了两种操作对象的接口,一种就是对象的封装接口,另一种是对象的自身接口。
    对象的自身接口是对象控件本身的接口,只要做过软件开发,使用过控件的人应该很清楚。
    对象的封装接口是QTP为对象封装的另一层接口,它是QTP通过调用对象的自身接口来实现的。


    两种接口的脚本书写格式的差别在于:
    自身接口需要在对象名后面加object再加属性名或方法名,
    封装接口就不用在对象名后面加object。

    比如操作JavaEdit对象,通过QTP封装的封装接口,脚本如下:
    设置JavaEdit的内容:
     JavaDialog("Add NE").JavaEdit("NE Name").Set "NE1"
    读取JavaEdit的内容:
     msgbox JavaDialog("Add NE").JavaEdit("NE Name").GetROProperty("value")

    如果通过JavaEdit的自身接口,脚本如下:
    设置JavaEdit的内容:
    JavaDialog("Add NE").JavaEdit("NE Name").object.setText("NE1")
    读取JavaEdit的内容:
    Msgbox JavaDialog("Add NE").JavaEdit("NE Name").object.getText()

    QTP执行JavaEdit().Set语句时,是通过执行JavaEdit().object.setText()来实现的。
    QTP执行JavaEdit().GetROProperty("value"),是通过执行JavaEdit().object.getText()来实现的。
    JavaEdit对象的封装接口Set()和GetROProperty("value"),是QTP封装JavaEdit对象的自身接口setText()和getText()而得来的。

    对象的封装接口是QTP使用的缺省接口,我们录制出来的脚本都是使用封装接口,大家用的也都是封装接口。
    但是封装接口不如自身接口丰富,因为QTP只是封装了部分常用的自身接口嘛。
    所以我们在需要时,可以绕过封装接口,直接调用对象的自身接口。
    不过有些自身接口不够稳定,在实践中偶尔会出现问题,但是概率很少。
   封装接口有相应功能的话,就尽量用封装接口吧!

  
    理解了封装接口和自身接口的原理,我们就可以更加灵活的操作对象了。

    但是我们怎么知道对象都有哪些封装接口和自身接口呢?
    其实很简单,用对象查看器(Object Spy)查看对象,在查看窗口里有列出这些接口,包括属性和方法。
    窗口中间有选择栏让你选择Run-time Object或者Test Object,
    当你选择Run-time Object时,它显示的就是对象的自身接口(自身的属性和方法)
    当你选择Test Object时,它显示的就是对象的封装接口(封装的属性和方法)

    明白了这些,你还等什么呢?快拿起对象查看器,看看对象都有哪些封装接口和自身接口,肆意的操作它,玩弄它吧!

    比如执行
    JavaDialog("Add NE").JavaEdit("NE Name").object.setVisible(false)
     哈哈,你的JavaEdit对象就当场消失不见了!!!

此文来源于51testing论坛,转载请注明出处
原始链接:
http://bbs.51testing.com/thread-13554-1-1.html


站内搜索
相关文章
◎用Schedule定时运行QTP脚本
◎LR中判断HTTP返回状态
◎关于终端仿真Legacy-Terminal Emulation(RTE)
◎TestDirector数据库迁移+升级
◎loadrunner监视linux服务器的安装与操作
◎用QTP录制时如何识别编辑框
◎QTP常见问题解答四
◎QTP常见问题解答三
◎QTP常见问题解答二
◎QTP常见问题解答一
◎学习loadrunner之一_事务
◎《自动化测试工具介绍QTP篇》——新手必看
◎校验对象是否存在object.exist
◎QTP与回归测试
◎QTP中一些基础代码结构累积
◎QTP中MS SQL SERVER数据库连接的一种简单方法
◎Object Repository 的合并
◎Mercury LoadRunner 8.1 使用前必读三
◎Mercury LoadRunner 8.1 使用前必读二
◎Mercury LoadRunner 8.1 使用前必读一
◎我来谈谈WinRunner和QTP的区别
◎winrunner 永久注册成功秘笈
◎td的邮件服务器配置成功
◎LoadRunner下DLL的调用
◎关于"RPC server is unavailable"的解决方案
◎QTP中虚拟对象设置
◎TD中Case的复用
◎中英文操作系统切换导致的找不到对象的解决方法
◎利用Analysis 分析结果
◎文件/表参数的数据分配和更新方法
◎QTP描述性编程原理介绍
◎对象库的管理与合并
◎QTP的学习历程
◎LoadRunner学习——LoadRunner的安装
◎解决回放时浏览器乱码问题
◎TD与QTP连接
◎QTP中的描述性编程
◎测试结果报告知多少
◎QTP中设置共享对象库
◎设定时间让脚本自动运行
◎如何在QTP中使用IE以外浏览器录制和运行测试?
◎QTP中调用共享文件
◎如何使用qtp检查网页中显示的文字颜色为指定的颜色
◎LoadRunner使用虚拟IP测试流程
◎QTP中的步骤生成器
◎Robot GUI脚本操作SQL SERVER数据库
◎QTP脚本还可以这样写
◎对动态的weblist取得其name值
◎QTP中测试环境的初始化
◎QTP Recovery Scenario 简介
热门文章
◎主流测试工具介绍(1)
◎Winrunner经验总结
◎主流测试工具介绍(2)
◎主流测试工具介绍(3)
◎Winrunner TSL命令简介(一)
◎WinRunner的问题整理
◎LoadRunner监视的性能计数器
◎四款主流测试工具的测试流程
◎Loadrunner中参数的设置
◎LoadRunner的一个解决方案
◎让LoadRunner走下神坛
◎WinRunner 脚本标准格式
◎WinRunner如何实现自动化测试
◎LoadRunner简化国泰航空测试流程
◎jboss tomcat weblogic websphere 性能对比测试
◎利用loadrunner测试ORACLE存储过程的性能
◎Winrunner TSL命令简介(四)
◎Winrunner TSL命令简介(二)
◎LoadRunner函数介绍
◎使用LoadRunner测试TUXEDO
◎TestDirector项目数据迁移完整过程
◎关于"RPC server is unavailable"的解决方案
◎Winrunner TSL命令简介(三)
◎使用Winrunner进行性能测试
◎WinRunner使用经验介绍
◎LoadRunner本机录制http协议程序遇到的问题以及解决方法
◎TD7.6 字段中英文对照表
◎Winrunner Context Sensitive命令列表
◎TD中Case的复用
◎MI测试工具介绍
◎对脚本的建议
◎QTP的学习历程
◎QTP的登陆脚本设计
◎LoadRunner学习——LoadRunner的安装
◎如何用QTP解析PDF
◎QuickTestPro SP考试心得
◎loadruner报错:Step download timeout(120 seconds)的解决方法
◎winsock协议错误编码解析
◎TD 7.x 升级到 TD 8.0 的一些经验(SQLSERVER 下)
◎高级测试管理的工具和技术
◎ERP功能测试最佳实践:10个步骤确保ERP系统的可靠性
◎QuickTestPro中的快捷键
◎使用LoadRunner来测试BEATUXEDO (LoadRunner 7.6)
◎Mercury LoadRunner 8.1 使用前必读三
◎LoadRunner函数介绍续
◎Mercury LoadRunner 8.1 使用前必读一
◎winsock的buffer简单解析
◎我来谈谈WinRunner和QTP的区别
◎何谓 Keyword-Driven Testing?
◎QTP的登陆脚本设计

Google提供的广告