51Testing软件测试论坛
标题:
关于RFT8.1跨工程调用类及方法的问题
[打印本页]
作者:
ldz_1_0_1
时间:
2011-11-26 16:45
标题:
关于RFT8.1跨工程调用类及方法的问题
模仿IBM的三层架构,建立了三个工程,分别封装对象层、业务层、用例层;
我在对象层封装好对象后,在对象层是可以对对象进行点击操作的;
然后将对象层打包成jar包,添加到业务层;
业务层调用对象层的方法时提示如下:
回放脚本期间发生异常:[OperateSurObj] [CRFCN0670E: 脚本 OperateSurObj 的第 36 行上的 RationalTestScriptException - com.rational.test.ft.RationalTestException:CRFCN0611E: 无法读取脚本定义文件:[F:\Gavin\IBM\rationalsdp\workspace\OperateSurObject\resources\GetSurObj.rftdef]。]。
下面是业务层和对象层的代码,麻烦高手指点下,谢谢!
[attach]76280[/attach][attach]76281[/attach]
作者:
ldz_1_0_1
时间:
2011-11-26 16:47
为了方便解决,把对象层和业务层代码粘贴到二楼和三楼
对象层代码:
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.1 Build 2600 (S)
*
* @since 2011/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[i].getProperty(".class").equals("#32770")&&tos[i].getProperty(".processName").equals("SurveillanceUI.exe"))
{
System.out.println("找到对象");
returnObject=(GuiTestObject) tos[i];
return returnObject;
}
}
if (tos.length > 0)
{
return returnObject;
}
else
{
return null;
}
}
//查找告警台按钮
public GuiTestObject 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[i].getProperty(".visible").equals(true))
{
System.out.println("找到对象");
returnObject=(GuiTestObject) tos[i];
return (GuiTestObject) returnObject;
}
}
return (GuiTestObject) returnObject;
}
}
作者:
ldz_1_0_1
时间:
2011-11-26 16:48
业务层代码:
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.1 Build 2600 (S)
*
* @since 2011/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
问题已经自己解决,结贴
作者:
散步的SUN
时间:
2011-12-1 09:14
什么原因造成的?
作者:
ldz_1_0_1
时间:
2011-12-3 10:59
问了几个高手,结果很简单,按照IBM的ITCL架构建立文件夹,然后import相应的引用就好了,之前对java了解的太少了...
作者:
ldz_1_0_1
时间:
2011-12-3 11:00
回复
5#
散步的SUN
把被调用的配置文件拷到当前层得resource目录下就好了
作者:
wn0112
时间:
2011-12-16 10:15
为什么要跨工程,放同一个项目里不行?
为什么要打包成jar,需要经常Update的东西改起来岂不很麻烦
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2