用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)
  Symantec的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