面朝测试,春暖花开.

[Rational Functional Tester][一起学]--数据路漫漫

上一篇 / 下一篇  2011-03-02 15:28:58 / 个人分类:Rational Functional Tester

  终于到了该准备数据的时候啦.脚本和case写的再好,没有数据也是白搭.RFT和QTP都差不多,都有自己的存放数据的地方,datapool--我们不得不面对的现实,呵呵.至于测试数据该怎么设计,这事我可解决不了,但是如果你只是想了解下,该怎么操作datapool,这事我能帮你.在这篇文章中我会提供给大家一个写好的操作方法,去专门操作datapool,声明啊这些方法有的也是抄的.嘿嘿.
  1.得到了datapool的handle.

 public static IDatapool open_DP_File(String filename) {
java.io.File dpFile = new    java.io.File((String)getOption(IOptionName.DATASTORE),filename + ".rftdp");
    
   return Datapool.load(dpFile);

}

    2.创建个DatapoolEquivalenceClass,简单的说,你仅仅是创建了个datapool是没用的.你必须要有DatapoolEquivalenceClass才能对里面的record进行操作,什么搜索啊,查值啊之类的.当然如果你是手动创建的datapool,并且已经在里面定义了一些变量什么的,你就不需要进行下面的方法啦.

protected static DatapoolEquivalenceClass create_EC(Datapool dp) {
   DatapoolEquivalenceClass ec;
   
        ec = (DatapoolEquivalenceClass) dp.constructEquivalenceClass();
        ec.setDescription("created by test script");
        ec.setName("Default");
        dp.appendEquivalenceClass(ec);
        
        return ec;
}
   3.得到指定的行.这个方法那,就是把你指定的行,所有的值都拿出来,由separator(你自己想要的分隔符,比如",")分隔开,组成一个字符串返回给你.
public static String get_Row(Datapool dp, int row_number, String separator) {
   String result = "";
   DatapoolEquivalenceClass ec;
   
   int count = dp.getVariableCount();
   ec = get_Default_EC(dp, count);
   
   DatapoolRecord dp_rec = (DatapoolRecord) ec.getRecord(row_number);
   for (int i = 0; i < count; i++) {
       result = result + dp_rec.getCell(i).getStringValue() + separator; 
   }   
   
   return result;
}

   4.得到datapool的记录的总数(需要拿到DatapoolEquivalenceClass).

  public static int get_RowCount(Datapool dp) {
   @SuppressWarnings("unused")
String result = "";
   DatapoolEquivalenceClass ec;
   
   int count = dp.getVariableCount();
   ec = get_Default_EC(dp, count);
   
   return ec.getRecordCount();
}

protected static DatapoolEquivalenceClass get_Default_EC(Datapool dp, int var_count) {
   DatapoolEquivalenceClass ec;
   
   int count = dp.getEquivalenceClassCount();
   if (count == 0) {
       ec = (DatapoolEquivalenceClass) create_EC(dp);
       // Create the variables
   for (int i = 0; i < var_count; i++) {
       DatapoolVariable var = (DatapoolVariable) dp.constructVariable();
       var.setDescription("created by test script");
       var.setRole(IDatapoolVariable.ROLE_INPUT_OUTPUT_DATA);
       //var.setSuggestedType(0);
       dp.appendVariable(var);
   }
   }
   else
       ec = (DatapoolEquivalenceClass) dp.getEquivalenceClass(dp.getDefaultEquivalenceClassIndex());

   return ec;
}

   随便唠叨点数据池的操作,但是我觉得,没什么意思 呵呵,因为实际中我更倾向于用excel之类的,如果你的RFT版本是8.1,那么恭喜你你可以完全使用上面的方法,如果你是8.2,那么很可惜,你应用上面的方法的时候就会出异常,因为RFT在升级的时候,有些更改,以前的org.eclipse.hyades.edit.datapool.*下面的有些类,运行时会出现异常,如果你想在8.2 的下面使用,并且不想编译的时候出问题,就请把tptp-models.jar添加你的project的path里面.我运行这些方法的时候遇到了异常,我没法解决.所以我更推荐你使用其他的方式,无非是拿数据的地方换一个.

  这个日志,感觉不好写,因为就是些读取数据的方法,根本就没啥特别的.真不如你到网上找个现成的操作excel的工具类,改改 自己用就行啦,还方便,这种java操作的例子网上一大堆.
  例子也只是给你个思路,剩下就要你自己来写啦.
  好了结束了,下面的日志会写点关于校验点的.提前说一句,要想测试方便,最好全部自己写.



TAG:

散步的SUN的个人空间 引用 删除 散步的SUN   /   2011-12-06 11:41:16
怎么没写下去了呢~可以的话,加我msn或者群吧~
 

评分:0

我来说两句

cypress

cypress

步子不能迈的太大,这样容易扯着蛋.

日历

« 2024-04-29  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 9660
  • 日志数: 12
  • 建立时间: 2011-02-16
  • 更新时间: 2011-12-31

RSS订阅

Open Toolbar