`

定义对象强制映射封装类(二)

 
阅读更多

出处:http://blog.csdn.net/zzxxbb112

上一次讲座的内容中,我们已经简单介绍了一些对象映射的基础知识,但是qtp本身提供的对象映射其实存在着移植的问题。比如当我们把脚本移植到另外一台机器时此对象就会失效。因为对象映射是跟着配置走的,而这些配置并不会跟着脚本走。这就值得我们去好好思考一下该如何把这些配置一起绑定在脚本上。

 

针对以上的问题笔者在这里提供大家两种解决方案:

方案1: 使用配置到处方案(Generate Script方式)

优点:方便快捷,导出脚本即可

缺点:只能应用与QTP标准的对象映射

步骤:打开Tools --> Object Identification 在user-defined映射完后点击

推荐保存到主脚本文件夹的配置文件夹中,文件为vbs文件,最好用于加入到环境预配置文件中运行它即可。

这样在更换机器的时候,只需要在其他机器上执行下此文件即可。

 

方案2: 更改注册表的ClassMap项下的键值 (参考QuickTest Unplugged中高级章节)

优点:可用于QTP非标准映射方式,比如.Net对象映射

缺点:需要对注册表操作脚本比较熟悉

步骤:进入到HKCU --> Software --> Mercury Interactive --> QuickTest Professional --> MicTest --> Packages

可以看到此图中显示出了QTP所有已安装插件的包文件。我们可以展开StdPackage进入到ClassMap

如图所示我们可以看到ClassMap下有很多类和对象

注意看右边,有一个TXEdit是不是很熟悉,没错,它就是之前我们使用QTP进行映射的对象

当使用QTP在Object Identification下的User-defined功能进行映射后,注册表自动会生成这样一行键值

那么这就意味着我们其实可以直接通过修改注册表自动加入自定义对象。

这里笔者建议大家可以直接使用Wsh对象的RegWrite方式封装成vbs脚本来进行映射。

 

.Net对象无法识别?直接加入注册表即可映射自定义对象

这张图我就不解释了,相应聪明的你一看就明白了。

 

注意:

此方案必须在启动QTP之前进行,否则无效。

 

总结:

 

这两次讲座主要介绍了使用对象映射的方式来解决对象无法识别的情况,以及一些需要注意的事项,当然这只是冰山一角,对于对象无法识别的情况还有千千万万种,针对每种不同的情况有着不同的解决方案,比如访问控件自身接口、通过DotNetFactory访问自定义对象,通过写自定义Dll动态链接库、通过插件扩展开发来解决等等等等,这里我就不一一举例了。

分享到:
评论

相关推荐

    门禁系统的面向对象设计

    总结,门禁系统的面向对象设计涉及了类与对象的定义、继承、封装、多态、接口、设计模式、异常处理、数据库集成以及安全性等多个核心概念,这些知识点构成了高效、可靠且易于维护的门禁系统软件架构的基础。

    C++面向对象程序设计 课件

    C++面向对象程序设计的关键概念包括类、对象、封装、继承、多态和抽象。 1. **类**:类是创建对象的蓝图。在C++中,类定义了一组数据成员(变量)和成员函数(方法),它们共同描述了一个特定类型的实体。例如,你...

    Java面向对象第2版代码.zip

    《Java面向对象编程第二版》是一本深入探讨Java编程中面向对象特性的教材。这个压缩包包含了一系列章节的源代码示例,旨在帮助学习者更好地理解和应用Java的面向对象概念。下面将对这些章节涉及的知识点进行详细阐述...

    Java面向对象程序设计教程PDF,完整的面向对象编程指南,大量习题便于自学。

    对象是现实世界中的实体在代码中的映射,而类则是创建对象的模板或蓝图。类定义了对象的属性(数据成员)和行为(方法)。 - **封装**:封装是面向对象的一个关键概念,它涉及将数据和操作这些数据的方法绑定在一起...

    java(面向对象编程)课件

    类是创建对象的模板,它定义了对象的属性(成员变量)和行为(方法)。通过实例化类,我们可以创建具有相同特征和行为的对象。例如,你可以创建一个名为"Person"的类,其中包含姓名、年龄等属性,以及说话、走路等...

    《Java面向对象程序设计》

    本课程旨在帮助学习者理解和掌握Java的面向对象特性,包括类、对象、封装、继承、多态等基本概念。 首先,让我们详细了解一下Java中的面向对象基础: 1. 类与对象:在Java中,一切皆为对象,而类是创建对象的蓝图...

    JAVA面向对象程序设计(英文版--书中项目源码)

    - 对象是类的实例,具备类所定义的属性和行为。 2. **封装**: - 封装是隐藏对象内部实现细节的过程,提供公共接口供外界交互。Java通过访问修饰符(如`private`, `public`, `protected`)实现封装。 3. **继承*...

    NHibernateByExample.pdf

    - **编写.NET持久化类和映射文件**:定义实体类,并使用XML映射文件或代码内嵌映射定义实体与数据库表之间的映射关系。 - **SessionManager辅助类**:用于管理Session和Transaction的生命周期,简化数据库操作。 - *...

    servlet如何将对象传给JSP,看完必懂

    当Servlet处理完逻辑后,可以将需要传递给JSP的数据封装成对象,并通过`setAttribute`方法存入`HttpServletRequest`对象中,然后通过`RequestDispatcher`的`forward`方法将请求转发到指定的JSP页面,此时JSP页面可以...

    面向对象程序设计复习试题(答案)

    1. **类与对象**:类是创建对象的模板或蓝图,它定义了一组属性(数据成员)和方法(成员函数)。对象是类的实例,每个对象都拥有类定义的属性和方法。例如,在文档中可能会有试题要求理解一个名为`Student`的类,该...

    php5面向对象

    在这里,`Electronics`类继承了`Product`类,因此`Electronics`对象也是`Product`对象的一种,可以调用`Product`类中定义的方法。 12.多态的应用 多态是指允许不同类的对象对同一消息做出响应的能力。在PHP中,...

    2020版Hibernate 12 道.pdf

    Hibernate 是一个流行的对象关系映射(ORM)框架,它极大地简化了Java应用程序与数据库之间的交互。ORM框架的主要目的是消除传统的JDBC操作中的手动SQL编写,将数据库操作转换为面向对象的编程模型。Hibernate通过将...

    建立一个基于MFC的程序

    通过以上分析可以看出,基于MFC的程序构建主要包括应用程序类的初始化、窗口类的定义以及消息映射等关键步骤。这些步骤有效地组织了应用程序的结构,简化了复杂性的管理,使得开发者可以更高效地开发Windows应用程序...

    J2SE讲解文档

    设计模式是解决常见问题的模板,例如单例模式确保一个类只有一个实例,工厂模式用于对象的创建,代理模式提供代理对象来控制对原对象的访问,模板设计模式定义了算法骨架,允许子类在不改变整体结构的情况下重定义...

    ibatis技术总结

    - **iBatis**则更偏向于SQL映射,它不强制要求对象-关系映射,而是提供了一种灵活的方式来处理SQL语句及其参数。这意味着开发者可以自由地编写SQL语句,并将其与Java对象进行关联。 iBatis和Hibernate之间的主要...

    华为C++中级培训教程.ppt

    接着,章节二讨论了**接口**(interface)的概念,虽然C++没有像Java那样的接口关键字,但通过纯虚函数(virtual functions)和抽象类(abstract classes)可以实现类似的功能,允许定义一个仅包含方法签名的类,强制子类...

    Php-extension-class.zip_php extension _site:www.pudn.com

    2. **类型安全**:通过类,我们可以强制类型检查,避免因类型不匹配导致的错误。 3. **封装和抽象**:类可以隐藏内部实现细节,提供清晰的接口,提高代码的可维护性和可读性。 4. **继承和多态**:如果需要,C结构体...

    超级有影响力霸气的Java面试题大全文档

    Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型 封装类 boolean Boolean char Character byte Byte short Short int Integer long Long float Float double ...

Global site tag (gtag.js) - Google Analytics