关于RFT8.1跨工程调用类及方法的问题
模仿IBM的三层架构,建立了三个工程,分别封装对象层、业务层、用例层;我在对象层封装好对象后,在对象层是可以对对象进行点击操作的;
然后将对象层打包成jar包,添加到业务层;
业务层调用对象层的方法时提示如下:
回放脚本期间发生异常: 。]。
下面是业务层和对象层的代码,麻烦高手指点下,谢谢!
为了方便解决,把对象层和业务层代码粘贴到二楼和三楼
对象层代码:
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;
}
} 业务层代码:
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));
}
} 问题已经自己解决,结贴 什么原因造成的? 问了几个高手,结果很简单,按照IBM的ITCL架构建立文件夹,然后import相应的引用就好了,之前对java了解的太少了... 回复 5# 散步的SUN
把被调用的配置文件拷到当前层得resource目录下就好了 为什么要跨工程,放同一个项目里不行?
为什么要打包成jar,需要经常Update的东西改起来岂不很麻烦
页:
[1]