使用 Rational Functional Tester V8.0 精确地识别及验证 Graphical Editing Framework(GEF)图形
2010-06-08 00:00:00 来源:WEB开发网健壮的操作代码
这样在其他测试脚本中,就可以调用例 3 来对一个 node 节点进行操作,只需传入所需节点名字即可。如例 4 中定义了一个移动节点的方法,调用了例 3 中的查找方法来定位所需节点,传入所需节点的名字,需要移动的距离即可。注意如果例 4 与例 3 不在同一脚本中,需要在例 4 脚本开头将例 3 脚本 import 进来,然后将 this 替换为实例化的例三脚本对象。
清单 4. 调用节点进行操作
//move node rightPix to the right, and downPix to the bottom
public void moveNode(String nodeName, int rightPix, int downPix)
{
this.getNode(nodeName).drag(atPoint(0,0), atPoint(rightPix,downPix));
}
这样在接下来的测试脚本中,我们只需要写一句话就可以实现将 node1 向右下移动 (80,100) 像素
this.moveNode(“node1”, 80, 100);
健壮的验证代码
自动化测试离不开合理的验证点,对于 GEF 同样我们需要编写灵活健壮的验证方法。RFT 通常提供的录制验证点方法虽然简便,但却缺乏灵活性以及重用性,无法在整个测试框架中共享。这里我们使用 vpManual 方法来进行验证。比如想要验证一个叫 connectorName 的箭头是否连接在节点 nodeName 上,我们可以利用类似例 3 中所讲的方法来找到这个箭头,然后取出它的 parent 看看是不是叫 nodeName,如下例 5。
清单 5. 灵活的、可重用的验证方法
import ibm.loggers.GenericLogger;
public class vcbeEditView extends vcbeEditViewHelper {
private GenericLogger gl = new GenericLogger();
public boolean verifyConnectorBelong(String connectorName, String nodeName)
{
//find the connector named "connectorName" from the diagram
TestObject[] to = this.getDiagramPartDiagram().find(atDescendant("tooltip",
connectorName, ".figureclassname",
"com.ibm.db2zos.ifa.vcbeditor.figures.LinkConnectionFigure"));
if (to.length > 1)
throw new AmbiguousRecognitionException("There are more than 1 object
identified.");
//locate the connector’s parent’s name
String parentName = to[0].getParent().getProperty("name").toString();
//verify if parent’s name = desired nodeName
Boolean succed = vpManual("VERIFY_CONNECTOR_" + connectorName +
"_BELONGS_TO_NODE_" + nodeName, true , parentName == nodeName).performTest();
if (succed)
{
gl.logScriptTestResult("VERIFY_SUCCESS",true,"VERIFY_CONNECTOR_" +
connectorName + "_BELONGS_TO_NODE_" + nodeName);
}
else
{
gl.logScriptTestResult("VERIFY_FAIL",false,"VERIFY_CONNECTOR_" +
connectorName + "DOES_NOT_BELONGS_TO_NODE_" + nodeName);
}
return succed;
}
}
Tags:使用 Rational Functional
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接