软件测试


网站首页 | 软件测试论坛 | 软件测试培训 | 软件测试博客 | 软件测试杂志 | 软件测试沙龙 | 软件测试下载 | 软件测试顾问
业界新闻 | 软件测试人才 | 软件测试技术 | 软件测试工具 | 行业软件测试 | 软件测试管理 | 软件质量专栏 | 软件开发专栏
当前位置:首页>>软件测试工具>>Rational>>正文
用Robot写Java代理(二)
文章出处:51testing投稿 作者:咸洁敏 发布时间:2006-09-20

如何写一个Java代理

为了开发一个使用于Rational Robot的Java代理,你必须熟悉Java内部的反省,Java外部接口,和被用于开发应用程序或者applet的类库。

为了证明如何写一个嗲里,让我们使用我们前面讨论过的com.Borland.jbcl.control. TreeControl开发一个程序。

一个Rational Robot的Java 代理只不过是一个Java类,它为被测试的SQABasic对象提供了一个特殊指定的接口。就像先前提及的,TreeControl映射到SQABasic的JavaTree对象。IRbtTree是JavaTree的一个接口,它扩展于IRbtBase。这意味着TreeControl代理必须执行IRbtTree的指定函数(包括IrbtBase的指定函数)。

事实上,Rational提供的一些代理服务于基本类代理开发。TreeControl作为javax.swing.JComponent和java.awt.Component的父类。AwtBaseProxy或者JfcBaseProxy(这两个都被Rational支持)能够服务于基本类代理的开发。在本文中,能实现IRbtBase的AwtBaseProxy用于基础类服务。现在还需要实现的是指定在IRbtTree里的剩余的功能(或函数)。

代理类的编写开始时,需要列出属于代理的包和写代理需要的包:

package beech;

import Java.lang.Object;

import Java.awt.Point;

import rational.robot.awt.*;

import rational.robot.openapi.*;

接下来是类的主体:

public class JBCLTreeProxy extends AwtBaseProxy implements IRbtTree

{

public JBCLTreeProxy(){}

...

}

假如构造类被使用,那么公用的关键字将被使用。否则,Robot将无法找到代理或者是在试图调用代理时返回一个错误的信息。

Java proxy is unavailable: Proxy [ requested for class

; using default proxy.

完成的代码见附录C。源代码展示的代理仅仅调用了被测是组件中的某个方法。举个例子,接口函数getNodeImage被用于区的每一个TreeControl对象的节点内容。Robot经过getNodeImage节点上的每一个对象,使用TreeControl的get函数的方法。Robot经过的getNodeImage 各节点上的内容被get函数返回。

GetNodeImage的执行被显示在下面:

编译源程序

为了编译源程序,环境变量类路径的设定需要修改。修改方法见最后一部分的描述,如下:

  • 运行Java Enabler(见图3)

Start->Program->Rational SuiteTestStudio->Rational Test-> Java Enabler这步骤为Rational Robot和Java 过程的通讯而准备的。

3:运行Rational Test Enabler for Java

点击安装程序的Complete去搜索所有可以安装的Java环境。一台机器通常有多个Java环境。

4:选择Java Environments for Testing Runs

从展示的Java环境列表中,选择你需要运行的AUT(见图4)。你只要选择需要支持的JVM,你所选择的所有环境将会用于测试Java应用程序和applets。

点击Next完成安装,安装时将在sqarobot.jar文件中,加上classpath环境变量。

  • 发布命令

javac JBCLTreeProxy.java -d

这将在当前路径下创建一个分支路径,在那里放置JBCLTreeProxy.class。

  • 发布命令

jar fcv beechProxy.jar beech

这命令将压缩JBCLTreeProxy.class为beechProxy.jar.

发布Java代理

当类文件被压缩成jar格式,该代理已经做好了发布的准备。发布的过程如下:

  • 从Rational Robot目录,选择Tools-> Extension Manager

确保Java的额外功能被选择(见图5)

5:管理额外环境变量列表

  • 直接编辑JavaClassMap.dat或者通过GUI去选择:

Tools -> General Options from Robot, 然后点击Java Class Mapping Tab.在Java object type选项中选择JavaTree,就像图6显示的。

6: Java Class Mapping 对话框

点击Add确定TreeControlclass 和他的代理类(见图7)

7: Component Class and Proxy 对话框

点击OK.

JavaClassMap.dat中的JavaTreesection将显示为:

[JavaTree]

com.Borland.jbcl.control.TreeControl=beech.JBCLTreeProxy

  • 复制代理文件beechProxy.jar,并且Borland文件jbcl.jar和dx.jar到

\TestDatastoe\DefaultTestScriptDataStore\ TMS_scripts\JavaProxies

  • 运行Java Enabler:

Start->Program->Rational SuiteTestStudio->Rational Test-> Java Enabler

8: Rational Test Enabler for Java

点击Special Java Proxies按钮(图8)去选择代理文件位于的项目。为了搜索和运用已经安装的Java环境,我们需要点击Complete或者Quick去安装它们。

  • 使用JBCLControls 应用程序测试代理

结论

使用Java代理,Rational Robot能够支持所有的Java类库,只要应用程序是使用可接受的JVM进行开发的。我们已经看到当需要第三方代理,Rational Robot是如何使用和如何编写Java代理去扩展它的能力。你能够使用附录A的应用程序(或者附录B中将其视为Applet运行的HTML页面)去测试你开发的Java代理。

附录

附录A:BCLControls应用程序的源程序

附录B:将JBCLControls作为Apple运行的HTML页面

附录C:BCLTreeProxy的源程序

(完) 

版权声明:51testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像。51testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们


站内搜索
相关文章
◎用Robot写Java代理(一)
◎浅谈RFT
◎如何在Robot脚本中使用Object Data
◎Rational Robot 常用语句
◎Rational Robot项目移植
◎Rational 识别 Delphi TDBGrid的解决方法
◎Rational robot 识别对象的方法
◎使用IBM Rational的测试理念成功打造测试团队
◎使用Rational的测试理念
◎Rational系列产品大概的介绍
◎Robot压力测试实例
◎理解Rational分析三层结构观点
◎robot函数实例讲解(二)
◎robot函数实例讲解(一)
◎IBM Rational XDE tester使用指南
◎详解 Rational ClearCase中的lost+found目录
◎关于Rational与软件质量保证
◎Robot手工编写GUI脚本如何获取对象识别方法和属性
◎rational对象脚本命令
◎Robot GUI脚本操作SQL SERVER数据库
◎GUI录制回放测试方法缺点
◎Rational中DataPool的介绍与实际应用-续(2)
◎Rational中DataPool的介绍与实际应用-续(1)
◎Rational中DataPool的介绍与实际应用
◎ClearCase迁移中的一些经验
◎IBM Rational ClearCase 视图全攻略
◎浅谈ClearQuest 2002.05 建库指南
◎Rational ClearQuest介绍
◎数据池(DATAPOOL)专题
◎使用IBM Rational PurifyPlus测试J2EE应用程序
◎使用Rational Robot测试含有数据关联的Web应用
◎IBM Rational Robot
◎用Rational Functional Tester创建随需应变的自动测试脚本
◎解决Grid自动化测试的思路
◎Base ClearCase与ClearQuest的集成
◎IBM Rational助您轻松完成基于J2EE的Web应用系统的性能测试和性能优化
◎IBM Rational 助您轻松完成自动化功能测试
◎使用 Rational PureCoverage 诊断 C/C++ 程序覆盖信息和用户环境的集成
◎Rational XDE tester使用指南
◎Rational 完成自动化功能测试
◎定制ClearQuest以通过所有者、角色或组来分隔记录
热门文章
◎IBM Rational Robot
◎Rational 完成自动化功能测试
◎Rational系列产品大概的介绍
◎Robot压力测试实例
◎Rational ClearQuest介绍
◎用Rational Functional Tester创建随需应变的自动测试脚本
◎robot函数实例讲解(一)
◎Robot手工编写GUI脚本如何获取对象识别方法和属性
◎关于Rational与软件质量保证
◎IBM Rational 助您轻松完成自动化功能测试
◎IBM Rational XDE tester使用指南
◎robot函数实例讲解(二)
◎使用 Rational PureCoverage 诊断 C/C++ 程序覆盖信息和用户环境的集成
◎rational对象脚本命令
◎GUI录制回放测试方法缺点
◎IBM Rational ClearCase 视图全攻略
◎使用IBM Rational的测试理念成功打造测试团队
◎数据池(DATAPOOL)专题
◎详解 Rational ClearCase中的lost+found目录
◎IBM Rational助您轻松完成基于J2EE的Web应用系统的性能测试和性能优化
◎Base ClearCase与ClearQuest的集成
◎理解Rational分析三层结构观点
◎浅谈ClearQuest 2002.05 建库指南
◎使用IBM Rational PurifyPlus测试J2EE应用程序
◎Rational中DataPool的介绍与实际应用
◎使用Rational的测试理念
◎Robot GUI脚本操作SQL SERVER数据库
◎ClearCase迁移中的一些经验
◎Rational中DataPool的介绍与实际应用-续(2)
◎Rational Robot 常用语句
◎Rational robot 识别对象的方法
◎使用Rational Robot测试含有数据关联的Web应用
◎Rational中DataPool的介绍与实际应用-续(1)
◎定制ClearQuest以通过所有者、角色或组来分隔记录
◎Rational XDE tester使用指南
◎浅谈RFT
◎解决Grid自动化测试的思路
◎Robot如何测试帮助c++程序员识别自定义或第三方控件
◎Rational Robot项目移植
◎用Robot写Java代理(一)
◎Rational 识别 Delphi TDBGrid的解决方法
◎如何在Robot脚本中使用Object Data
◎在VU脚本中使用HTTP连接
◎使用Robot连接SQL的例子
◎使用Robot输入清单
◎Robot进行数据库的并发测试
◎使用自定义代码对数据池进行随机访问

Google提供的广告