首页 > 代码库 > 学习RFT之:TestObject.find方法的了解与使用
学习RFT之:TestObject.find方法的了解与使用
第一部分:了解TestObject.find
一、TestObject.find方法的作用
1、测试过程中动态的找到测试对象(控件、标签等),使我们的测试用例不再依赖RFT自带的对象地图(Object Map)。
2、脱离了对对象地图的依赖也就不再需要重复的对UI等变更的修改对象地图过程了。
二、find方法的使用说明
1、Find方法是TestObject类继承RootTestObject的一个方法,并重写了多种实现方式。
在下面的实例中,代码使用 atDescendant
来定位按钮。然而,您可以有许多方式来使用 find
:
atChild
搜索 TestObject 所有直接的子对象。atDescendant
寻找 TestObject 的所有子对象。atList
让您指定一个 atChild、atDescendant,和 atProperty 对象的列表,这样您可以减小搜索范围。
第二部分:利用find方法实践(测试RFT自带的JAVA小软件)
一、打开自动的JAVA小程序:
找到“配置”--》“配置应用程序进行测试...”--》,进入下图界面:点击“运行”
二、查看控件属性,为find作准备。
打开要测试的应用程序后,通过RFT主界面左边的“专用测试对象图”——》抓取功能,查看界面上每个元素的各种属性。把需要的控件属性全查询出来。
三、新建一个类,抽象出整个Dialog及其控件(这里只加入了Cancel按钮)
1 package baidu; 2 import resources.baidu.TestForPlaceAnOrderHelper; 3 import com.rational.test.ft.*; 4 import com.rational.test.ft.object.interfaces.*; 5 import com.rational.test.ft.object.interfaces.SAP.*; 6 import com.rational.test.ft.object.interfaces.WPF.*; 7 import com.rational.test.ft.object.interfaces.dojo.*; 8 import com.rational.test.ft.object.interfaces.siebel.*; 9 import com.rational.test.ft.object.interfaces.flex.*;10 import com.rational.test.ft.object.interfaces.generichtmlsubdomain.*;11 import com.rational.test.ft.script.*;12 import com.rational.test.ft.value.*;13 import com.rational.test.ft.vp.*;14 import com.ibm.rational.test.ft.object.interfaces.sapwebportal.*;15 /**16 * Description : Functional Test Script17 * @author lenovo18 */19 public class TestForPlaceAnOrder extends TestForPlaceAnOrderHelper20 {21 /**22 * Script Name : <b>TestForPlaceAnOrder</b>23 * Generated : <b>2014-10-18 上午11:41:34</b>24 * Description : Functional Test Script25 * Original Host : WinNT Version 6.1 Build 7601 (S)26 * 27 * @since 2014/10/1828 * @author lenovo29 */30 public void testMain(Object[] args) 31 {32 // TODO 在此插入代码33 }34 35 //创建一个类(Dialog),抽象出Place an order这个对话框及其内部的控件36 //静态类的方式,可以方便调用37 public static class PlaceAnOrder38 {39 //得到根节点,整个Dialog40 public static GuiTestObject getDialog()41 {42 RootTestObject root = getRootTestObject();43 TestObject[] to = root.find(atDescendant("class", "javax.swing.JFrame", "title", "Place an Order"));44 return new GuiTestObject(to[0]);45 }46 //得到Cancel按钮47 public static GuiTestObject getBtnCancel()48 {49 TestObject to = getDialog();50 //这里使用了强制类型转换的方式51 TestObject[] btnCancel = to.find(atDescendant("class", "javax.swing.JButton", "text", "Cancel"));52 return new GuiTestObject(btnCancel[0]);53 }54 55 }56 57 58 }
再新建一个测试用例:(动作:取消订单)
1 package baidu; 2 import resources.baidu.TestJavaClassAHelper; 3 import baidu.TestForPlaceAnOrder.PlaceAnOrder; 4 5 import com.rational.test.ft.*; 6 import com.rational.test.ft.object.interfaces.*; 7 import com.rational.test.ft.object.interfaces.SAP.*; 8 import com.rational.test.ft.object.interfaces.WPF.*; 9 import com.rational.test.ft.object.interfaces.dojo.*;10 import com.rational.test.ft.object.interfaces.siebel.*;11 import com.rational.test.ft.object.interfaces.flex.*;12 import com.rational.test.ft.object.interfaces.generichtmlsubdomain.*;13 import com.rational.test.ft.script.*;14 import com.rational.test.ft.value.*;15 import com.rational.test.ft.vp.*;16 import com.ibm.rational.test.ft.object.interfaces.sapwebportal.*;17 /**18 * Description : Functional Test Script19 * @author lenovo20 */21 public class TestJavaClassA extends TestJavaClassAHelper22 {23 /**24 * Script Name : <b>TestJavaClassA</b>25 * Generated : <b>2014-10-18 上午8:55:31</b>26 * Description : Functional Test Script27 * Original Host : WinNT Version 6.1 Build 7601 (S)28 * 29 * @since 2014/10/1830 * @author lenovo31 */32 public void testMain(Object[] args) 33 {34 TestObject to = PlaceAnOrder.getDialog();35 36 GuiTestObject btnCancel = PlaceAnOrder.getBtnCancel();37 38 btnCancel.click();39 }40 41 }
学习RFT之:TestObject.find方法的了解与使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。