WEB开发网
开发学院软件开发Java 使用 Rational Functional Tester V8.0 精确地识别... 阅读

使用 Rational Functional Tester V8.0 精确地识别及验证 Graphical Editing Framework(GEF)图形

 2010-06-08 00:00:00 来源:WEB开发网   
核心提示: 健壮的操作代码这样在其他测试脚本中,就可以调用例 3 来对一个 node 节点进行操作,使用 Rational Functional Tester V8.0 精确地识别及验证 Graphical Editing Framework(GEF)图形(5),只需传入所需节点名字即可,如例 4 中定义了

健壮的操作代码

这样在其他测试脚本中,就可以调用例 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; 
} 
} 

上一页  1 2 3 4 5 6  下一页

Tags:使用 Rational Functional

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接