如何写一个Java代理 为了开发一个使用于Rational javascript:;" onClick="javascript:tagshow(event, 'Robot');" target="_self">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.openapi.*; 接下来是类的主体: public class JBCLTreeProxy extends AwtBaseProxy implements IRbtTree { public JBCLTreeProxy(){} ... } 假如构造类被使用,那么公用的关键字将被使用。否则,Robot将无法找到代理或者是在试图调用代理时返回一个错误的信息。 Java proxy is unavailable: Proxy [ 完成的代码见附录C。源代码展示的代理仅仅调用了被测是组件中的某个方法。举个例子,接口函数getNodeImage被用于区的每一个TreeControl对象的节点内容。Robot经过getNodeImage节点上的每一个对象,使用TreeControl的get函数的方法。Robot经过的getNodeImage 各节点上的内容被get函数返回。 GetNodeImage的执行被显示在下面:
编译源程序 为了编译源程序,环境变量类路径的设定需要修改。修改方法见最后一部分的描述,如下:
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格式,该代理已经做好了发布的准备。发布的过程如下:
确保Java的额外功能被选择(见图5) 图5:管理额外环境变量列表
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
Start->Program->Rational SuiteTestStudio->Rational Test-> Java Enabler 图8: Rational Test Enabler for Java
点击Special Java Proxies按钮(图8)去选择代理文件位于的项目。为了搜索和运用已经安装的Java环境,我们需要点击Complete或者Quick去安装它们。
结论 使用Java代理,Rational Robot能够支持所有的Java类库,只要应用程序是使用可接受的JVM进行开发的。我们已经看到当需要第三方代理,Rational Robot是如何使用和如何编写Java代理去扩展它的能力。你能够使用附录A的应用程序(或者附录B中将其视为Applet运行的HTML页面)去测试你开发的Java代理。 附录 附录A:BCLControls应用程序的源程序 附录B:将JBCLControls作为Apple运行的HTML页面 附录C:BCLTreeProxy的源程序 版权声明:51testing软件测试网及相关内容提供者拥有ltesting.net内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像。51testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们。 |
TAG: Robot