RFT自动化常见动作移植方法
RFT、简单动作、常见类、移植
摘要:
本文记录了利用Rational Functional Tester(以下简称RFT)编写WEB自动化中,一些常见动作的简单类和控件查找的基础方法,比如单击、双击、下拉框选择、查找表格内容等,对于初接触RFT的人员掌握页面自动化提供最基本的方法。
1 RFT介绍
IBMRational Functional Tester是由IBM推出的针对Java,.Net和Web应用程序的自动化测试工具,拥有功能强大的编辑器并支持多种脚本语言,还集成了ScriptAssure 技术、模式匹配功能及数据驱动,以增强测试脚本的灵活性。借助这一工具,测试人员可以轻松地录制或编写脚本来进行自动化测试,极大地提高了测试效率。
建议大家在看此文之前先理解RFT自动化三层框架,及每层的具体作用,这样在看动作实现及控件查找时会更快理解。
2 RFT API
TestObject类继承于java.lang.ObjectTestObject类包含一个参考对象,可以是直接定义参照对象。在RFT ObjectMap中,由ObjectManager来维护mapptestobject对象,ObjectManager是通过某个识别算法将Map中的对象与被测试软件中的对象进行一一对应的。
下面列出实现一些常见的API接口:
类 | 适用情况及实现的接口 | 继承类 | 对象 |
GuiTestObject | 所有测试对象的基础类,适用于几乎所有的图形化控制,并实现了IGraphical接口 | TestObject | Button/dialog/link /document/form/ html/image/label |
StatelessGuiSubitem TestObiect | 实现了接口IGraphical、IGraphicalSubitem | GuiTestObject | Table、frame |
TextGuiTestObject | 实现了接口IGraphical、ISubitem | GuiTestObject | Text |
SelectGuiSubitemTestObject | 实现了接口IGraphical、IGraphicalSubitem、ISubitem、ISelect | GuisubitemTestObject | List |
在RFT 中一个非常重要的根接口是 IGraphical 接口,它定义了针对GUI元素的所有标准操作,这里的标准操作指的是常用的方法,如click,doubleclick,select等。下文我们即将重点介绍标准操作。
3 控件查找及简单动作
3.1 按钮单击
比如下图中的应用按钮。在测试用例中需要用到点击“应用”按钮,需要实现两个步骤:1.查找页面中的应用按钮控件;2.点击此应用按钮。
元素控件层(appobjects目录下的命名文件)返回按钮控件,使用上文中提到的最常用的类GuiTestObject,然后对控件的属性值进行查找。利用RFT中的“打开测试对象检查器”,鼠标放到WEB页面需要查找的按钮上,就会显示控件的层次结构,根据属性值定义唯一确定的参数,这样才能准确返回需要查找的控件。
元素控件层中定义的返回函数实例如下:
public GuiTestObject Apply_Button() throwsException
{
TestObject Obj = new MyObject("button", "value", "应用").FindObj();
return (GuiTestObject)Obj;
}
操作层对返回的按钮控件做单击操作click:
DutCom.Apply_Button().click();
此时就实现了先查找此页面的“应用”按钮,再单击此按钮的动作操作。
3.2 下拉框选择
在测试用例中需要用到下拉框的选择,比如下图需要在绑定接口下拉框中选择WAN3选项,需要实现两个步骤:1.查找页面中的绑定接口下拉框控件;2.在下拉框中找到“WAN3”选项。
元素控件层返回下拉框控件,使用上文中的类SelectGuiSubitemTestObject,根据测试对象检查器定义控件的属性值"name"为 "ipsec_interface_type ",这样就可以唯一查找到此控件。
元素控件层中定义的返回函数实例如下:
public SelectGuiSubitemTestObject IPSec_port_select() throwsException
{
TestObject Obj = newMyObject("select", "name", "ipsec_interface_type").FindObj();
return (SelectGuiSubitemTestObject)Obj;
}
操作层对返回的按钮控件做选择操作select:
IPSeccom.IPSec_port_select().select("WAN3");
此时就实现了先查找此页面的“绑定接口”下拉框,再选择WAN3动作操作。
3.3 单选/复选框选择
在测试用例中需要用到单选框的点击,比如下图需要点击“启用IPSec功能”,需要实现两个步骤:1.查找页面中的启用IPSec功能控件;2.点击此单选框控件。
元素控件层返回单选框控件,使用上文中的类GuiTestObject,根据测试对象检查器定义控件的属性值类型为"checkbox",再定义唯一确定的参数,这样就可以唯一查找到此控件。
元素控件层中定义的返回函数实例如下:
public GuiTestObject ResetEnable_Button() throwsException
{
TestObject Obj = newMyObject("checkbox", "value", "on").FindObj();
return (GuiTestObject)Obj;
}
操作层对返回的按钮控件做选择操作click:
IPSeccom.ResetEnable_Button().click();
此时就实现了先查找此页面的“启用IPSec功能”单选框,再对此单选框点击的操作。复选框和此类似,此处不予赘述。
3.4 文本框输入
在测试用例中需要用到文本框输入,比如下图需要输入 “安全策略名称”,需要实现两个步骤:1.查找页面中的安全策略名称控件;2.在此控件中输入文本信息。
元素控件层返回文本框控件,使用上文中的类TextGuiTestObject,根据测试对象检查器定义控件的属性值类型为"text",再定义唯一确定的参数,这样就可以唯一查找到此控件。
元素控件层中定义的返回函数实例如下:
public TextGuiTestObject Getipsecpolicyname_Text() throwsException
{
TestObject Obj = newMyObject().IE();
Obj = newMyObject(Obj,"text","name","ipsec_policy_name").FindObj();
return (TextGuiTestObject)Obj;
}
操作层对返回的按钮控件做选择操作setText:
IPSeccom.Getipsecpolicyname_Text().setText(PC2);
此时就实现了先查找此页面的“安全策略名称”文本框,再对此文本框输入文本信息的操作。