ldz_1_0_1 发表于 2011-11-26 16:45:17

关于RFT8.1跨工程调用类及方法的问题

模仿IBM的三层架构,建立了三个工程,分别封装对象层、业务层、用例层;
我在对象层封装好对象后,在对象层是可以对对象进行点击操作的;
然后将对象层打包成jar包,添加到业务层;
业务层调用对象层的方法时提示如下:
回放脚本期间发生异常: 。]。
下面是业务层和对象层的代码,麻烦高手指点下,谢谢!

ldz_1_0_1 发表于 2011-11-26 16:47:03

为了方便解决,把对象层和业务层代码粘贴到二楼和三楼
对象层代码:

import resources.GetSurObjHelper;
import com.rational.test.ft.object.interfaces.GuiTestObject;
import com.rational.test.ft.object.interfaces.TestObject;
/**
* Description   : Functional Test Script
* @author Administrator
*/
public class GetSurObj extends GetSurObjHelper
{
/**城域监控系统window().
* Script Name   : <b>GetSurObj</b>
* Generated   : <b>2011-11-25 上午11:50:14</b>
* Description   : Functional Test Script
* Original Host : WinNT Version 5.1Build 2600 (S)
*
* @since2011/11/25
* @author Administrator
*/
public void testMain(Object[] args)
{
// TODO 在此插入代码
}
//获取顶层对象
public GuiTestObject GetRootObject()
{
TestObject[] tos = null;
GuiTestObject returnObject = null;
System.out.println("开始查找root对象");
tos = find(atDescendant(".name","城域监控系统",".text","城域监控系统"));
System.out.println("tos.length="+tos.length);
//输出所有对象的属性
for(int i=0;i<tos.length ;i++)
{
   if(tos.getProperty(".class").equals("#32770")&&tos.getProperty(".processName").equals("SurveillanceUI.exe"))
   {
    System.out.println("找到对象");
    returnObject=(GuiTestObject) tos;
    returnreturnObject;
   }
}
if (tos.length > 0)
{
   return returnObject;
}
else
{
   return null;
}
}

//查找告警台按钮
publicGuiTestObject getAlarmButton()
{
TestObject[] tos = null;
TestObject returnObject = null;
GuiTestObject root = new GetSurObj().GetRootObject();
tos = root.find(atList(atDescendant(".class",".Pushbutton",".name","告警台"),atProperty(".text","告警台")));
//输出所有对象的属性
for(int i=0;i<tos.length ;i++)
{
   if(tos.getProperty(".visible").equals(true))
   {
    System.out.println("找到对象");
    returnObject=(GuiTestObject) tos;
    return (GuiTestObject) returnObject;
   }
}
return (GuiTestObject) returnObject;
}

}

ldz_1_0_1 发表于 2011-11-26 16:48:18

业务层代码:

import resources.OperateSurObjHelper;

/**
* Description   : Functional Test Script
* @author Administrator
*/
public class OperateSurObj extends OperateSurObjHelper
{
        /**
       * Script Name   : <b>OperateSurObj</b>
       * Generated   : <b>2011-11-25 下午02:11:48</b>
       * Description   : Functional Test Script
       * Original Host : WinNT Version 5.1Build 2600 (S)
       *
       * @since2011/11/25
       * @author Administrator
       */
       
        public void testMain(Object[] args)
        {
                // TODO 在此插入代码
                this.clickAlarmButton();
        }
        //点击告警台按钮
        public boolean clickAlarmButton()
        {               
                GetSurObj.getAlarmButton().click(atPoint(5,5));               
        }       
}

ldz_1_0_1 发表于 2011-11-30 14:15:35

问题已经自己解决,结贴

散步的SUN 发表于 2011-12-1 09:14:13

什么原因造成的?

ldz_1_0_1 发表于 2011-12-3 10:59:32

问了几个高手,结果很简单,按照IBM的ITCL架构建立文件夹,然后import相应的引用就好了,之前对java了解的太少了...

ldz_1_0_1 发表于 2011-12-3 11:00:32

回复 5# 散步的SUN


    把被调用的配置文件拷到当前层得resource目录下就好了

wn0112 发表于 2011-12-16 10:15:31

为什么要跨工程,放同一个项目里不行?
为什么要打包成jar,需要经常Update的东西改起来岂不很麻烦
页: [1]
查看完整版本: 关于RFT8.1跨工程调用类及方法的问题