使用RFT的getProperty和invoke方法测试定制的Java控件

简介:定制的Java 控件(或者没有包含于标准 Java 库中的控件)正在挑战 GUI 自动化测试过程。 本文解释了如何通过 IBM Rational Functional Tester 所提供的两种方法使用这些控件类,用以创建自 动化的处理过程: getPropertyinvoke

IBM Rational Functional Tester 提供了标准接口,便于操作标准 Java 控件。例如,在 Rational TextGuiTestObject 接口中,您可以很方便的使用getText 和 setText 方法获取/设置Swing文本框。另 一方面,任何GUI自动化工具都很难实现非标准的或定制控件的自动化,包括 Rational Functional Tester。定制控件 并不存在于标准部件之中(例如,AWT 或 Swing),但它们是应用程序开发者不断积 累所创造的。Rational Functional Tester 开发者并不知道这些控件,不能预料到您所需要的方法,因 而他们不可能提供包含所有方法的接口。为了测试这些接口,您需要直接从控件本身获取控件如何工作的 信息。幸运的是, Rational Functional Tester为我们提供了一条途径,那就是使用 getProperty 和 invoke方法。

Java applet 就是一个定制控件的实例,如图 1所示。这是 Lotus Notes中包含的 Editor applet 。

图 1. Lotus Notes Editor applet

这个 applet 显示了 用户输入富文本(可设置文本为粗体、斜体、文本颜色等等)的区域。用户通过使用顶部 applet 的按钮 和列表框控制文本的显示。这些按钮并不是标准控件。就是说,它们不属于 Swing 或 AWT 按钮,而属于 Lotus的开发者。它们的包和类名,com.lotus.app.MultiImageButton,表现出了这一点。很明显,这个 包中的类不是一种标准控件,因此 Rational Functional Tester 不能提供包含您需要的一切接口。

但是,即使这些按钮不是标准控件,Rational Functional Tester 仍然可以使用最普遍的类来识 别它们,即 GuiTestObject。但在大部分情况下,这样做还不能满足要求。问题在于,对比直接提供的 GuiTestObject 类,您需要更多有关控件的信息,更多操作它们的方法。例如,虽然 GuiTestObject提供 了点击按钮的方法,但是它没有提供获取按钮名称(例如,用来区别粗体按钮和斜体按钮)的方法 getText ,而且它没有提供 isSelected 方法以确定是否某个特殊按钮已被选择。但这些正是彻底测试 applet 所必需的信息。因此,您不得不使用 Rational Functional Tester 的 getProperty 和 invoke 方法直接从控件中获取信息。

时间: 2024-08-17 19:55:14

使用RFT的getProperty和invoke方法测试定制的Java控件的相关文章

iOS中有遍历父视图的子视图的方法便于统一设置同类控件的属性,Android中有类似的方法吗?

问题描述 iOS中有遍历父视图的子视图的方法便于统一设置同类控件的属性,Android中有类似的方法吗? iOS不论是controller还是View视图都有获取子视图来遍历的方法,Android中对应的办法是什么, 如果Android中遇到了父视图中批量同类型子控件的同一属性的统一设置,该怎么办? 解决方案 Android中ViewGroup及其子类是装载View的容器,具有API:int getChildCount(), View getChildAt(int index),使用这两个方法可

Page.FindControl方法找不到指定控件的解决方法

Page.FindControl方法找不到指定控件的解决方法 FindControl方法是在当前naming container查找指定ControlID对应的控件,该naming container是一个实现了INamingContainer接口的对象. 可以在该页的页指令中添加 Trace=Ture 指令来跟踪页面输出查看控件树.一个页面的控件树中,Page对象必然是顶级的naming container,但绝非必然是唯一的naming container.譬如当有GridView存在的话,

方法-jsp调用OCX 打印控件POSTEK

问题描述 jsp调用OCX 打印控件POSTEK 1:控件已注册 2:浏览器已成功加载 3:本机win8 IE11浏览器能用,其他机子都不能用 问题:报错pskprn控件对象为空,调用不到其中的方法,为什么?

Page.FindControl方法找不到指定控件的原因

在ASP.NET 2.0中,引入了MasterPage的机制,在当前页使用MasterPage的情况下,放在 ContentPlaceholder1这样的内容页的控件无法用Page.FindControl来查找,原因何在? MSDN对FindControl的解释:在当前的命名容器中搜索带指定 id 参数的服务器控件 这里有一篇文章阐述阐述FindControl方法和INamingContainers接口:http://www.odetocode.com/Articles/116.aspx Fin

asp..net2.0文档上传 的一个方法(一个上传控件,上传多个文档 )

控件|上传|上传控件  前台 :   <table style="width:100%">         <tr>             <td style="width:15%">                 类型名称:</td>             <td>                <asp:DropDownList ID="TypeDDL" runat=&q

web用户控件调用.aspx页面里的方法_实用技巧

现在把此web用户控件添加到一.aspx页面中.要实现单击用户控件中的button控件把搜索出来的结果数据绑定到.aspx页面的gridview控件上去,如何实现呢? 如果gridview控件是放在.ascx文件中的话,那我们直接把搜索出来的数据绑定到它上面就行了.但现在gridview是放在.aspx文件里,也就是说web用户控件要如何才能访问母页面的控件,把数据绑定到母页面的控件上去? 解决方法: 1.先在.aspx页面的后台文件.aspx.cs中添加一个绑定数据的方法,代码如下: 复制代码

RFT动态创建并获取控件对象,该怎么做?

问题描述 我请教一下:我用RFT录制javaGUI控件的并操作,但是我想通过自己写的方法只需填写参数就可以drag任意多个控件,并对他们进行操作,这个该怎么去做呢?RFT只有在录制的过程中才会得到控件对象吗?有没有解决的办法?

asp.net中将数据库绑定到DataList控件的实现方法与实例代码

解决方法1: datalist databind() 解决方法2: 查看MSDN上的详细说明资料 解决方法3: 在DataList的模板中用table表格,如: 复制代码 代码如下: <asp:DataList ID="dlDetailedInfo" runat="server" OnItemDataBound="dlDetailedInfo_ItemDataBound" Width="100%"> <Ite

ASP.NET:数据库邦定控件DataBind方法

asp.net|控件|数据|数据库 在上一节中我们介绍了<%#  %> 语法,这种情况是Web 窗体有了明确的数据源,即Page.DataBind.这一小节我们来了解DataBind方法.     DataBind方法是ASP.NET中一个很重要的概念,几乎所有的控件都需要它控制数据的操作,它的作用是在为控件指定数据源后,执行数据绑定操作.在上一章的DataSet对象实例中我们已经使用过,利用这个方法为DataGrid控件绑定数据,即DataGrid.DataBind().     ASP.N