首页 测试 工具 查看内容

用Robot写Java代理(二)

2014-8-5 23:21| 发布者: tianzc| 查看: 596| 评论: 0

摘要: 如何写一个Java代理为了开发一个使用于Rational Robot的Java代理,你必须熟悉Java内部的反省,Java外部接口,和被用于开发应用程序或者applet的类库。为了证明如何写一个嗲里,让我们使用我们前面讨论过的com.Borlan ...

如何写一个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到

TestDatastoeDefaultTestScriptDataStore TMS_scriptsJavaProxies

  • 运行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软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们


鲜花

握手

雷人

路过

鸡蛋

扫一扫关注最新动态

毒镜头:老镜头、摄影器材资料库、老镜头样片、摄影
爱评测 aipingce.com  
返回顶部