用Robot写Java代理
发表于:2011-12-13来源:未知作者:娃娃点击数:
标签:robot
Rational Robot是通过录制用户操作进行功能,性能和兼容性测试的自动化测试工具。通过回放录制脚本进行功能和可靠性测试。本文主要介绍Rational Robot针对java程序和applets如何进行功能测试。 Rational Robot当前版本支持用以下类库开发的Java程序和app
Rational Robot是通过录制用户操作进行功能,
性能和
兼容性测试的
自动化测试工具。通过回放录制脚本进行功能和可靠性
测试。本文主要介绍Rational Robot针对
java程序和applets如何进行
功能测试。
Rational Robot当前版本支持用以下类库
开发的
Java程序和applet程序:
Java Foundation Classes(JFCs)
Sun的Swing 和 Abstract Windowing Toolkit(AWT)
Sym
antec的Visual Café
Sitraka Software的JClass库
还有一些Java类超出了Rational Robot支持的范围,但是需要注意的是这些超出Robot支持的Java类中的一些类继承自Rational Robot支持的类。
测试人员可以通过编写Java代理来扩展Rational Robot识别对象的能力。使用Java扩展API,需要注意的是,这些代理只能够测试在SUN的JVM上运行的类,并可以运行在Netscape和IE上的程序和Applet。
本文将讨论,Rational Robot怎样使用Java代理并且当需要第三方Java代理的时候怎么做。示范如何
开发Java代理,怎样用Java扩展Api支持Rational软件。
Rational Robot怎样用Java代理
执行功能,性能或者可靠性测试的时候,Rational Robot通过AUT监控用户交互进而生成Rational的SQABasic脚本,不必管开发程序的语言是什么,当录制的脚本回放,他通过AUT再现用户的操作行为。测试Java程序和Applets的时候,SQABasic有一套定义好的图形界面(GUI)对象.
表格一:展示了一组SQABasic 测试Java程序和Applect的GUI对象
JavaMenu |
JavaMenuItem |
CheckBox |
RadioButton |
ComboBox |
ComboListBox |
Label |
ListBox |
ScrollBar |
EditBox |
TrackBar |
TabControl |
ProgressBar |
JavaPanel |
JavaWindow |
JavaTree |
JavaSplitPanel |
JavaSplitter |
JavaMenuBar |
JavaObject |
JavaCheckBoxMenuItem |
PushButton |
Toolbar |
JavaListView |
JavaMenuSeparator |
JavaTable |
JavaCanvas |
|
JavaPopupMenu |
JavaTableHeader |
|
|
这些SQABasic GUI对象表现为他们的属性和功能表现。这些功能定义允许Robot模拟用户操作和对象进行交互。Robot知道怎样处理SQABasic GUI对象。测试Java和applets,Java对象必须映射为SQABasic GUI对象。比如JFC 中的Jbutton组件需要映射为SQABasic 对象的PushButton。
通过反射或者说反映,Rational Robot可以动态地决定加载到JVM中Java GUI组建的类、功能和属性。它使用包含在JavaClassMap.dat中的信息确定什么样的SQABasic对象可以映射到相关类,也可以确定使用什么样的代理与Java组建相互交互。
Rational提供的JavaClass
模板被放在项目目录下\TestDatastoe\DefaultTestScriptDataStore\TMS_scripts\dat JavaClassMap.dat信息格式如下:
[SQABasic Object]
Java GUI component=proxy
图一描述的过程展现了Rational Robot是如何使用代理与Java应用程序交互的。对于Rational 所支持的Java代理类,包含在JavaClassMap.dat 里的信息在Robot内部有效。
此过程是如下工作的
1、 在录制的时候,Rational Robot侦查用户和AUT之间的交互;通过反省,他知道用户与什么样的控间的类交互。
2、 Rational Robot使用JavaClassMap.dat文件或者使用Robot内部可接受的相似信息,去决定这个类映射到的SQABasic GUI对象和与Java组件相互影响的代理。
3、 然后Rational Robot使用代理学习到关于Java组件的必要信息,生成适当的SQABasic代码。
4、 为了回放已录制的代码,SQABasic代码被转化为Robot可调用的适当的函数或者代理类的函数列表。这些列表一次触发被测组件中的适当的函数。
举个例子,模拟一个用户点击一个Java GUI组件(比如:Jbutton),Rational Robot生成如下SQABasic命令:
PushButton Click, recMethod
这里的recMethod是AUT一个唯一可识别的按钮名称。同样的命令别用于所有的按钮,不管它使用什么语言开发的。
什么时候需要第三方得Java代理
如果被开发的应用程序使用任何明确的可支持标准Java GUI组件的类库,那么Rational支持的代理对于与Robot交互的应用程序就足够了。本文中所说的标准Java GUI组件是指类中可被引用的组件。Jbutton, Jtree和Jplanel都是JFCs中标准的Java GUI组件。
原文转自:http://www.ltesting.net