51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4609|回复: 10
打印 上一主题 下一主题

回放时如何控制只运行数据池中的某些记录?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-2-17 10:51:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教各位大侠,回放时如何控制只运行数据池中的某些记录?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-2-17 11:32:20 | 只看该作者
RFT自己带的数据池没用过,我用的都是excel,只能提供一个思路供大家讨论了.当需要运行某些数据的时候,我一般采取的做法就是将要运行的数据所在的行标或者数组传递到脚本里,然后脚本根据行标把数据从excel里读取出去来.估计RFT的数据池应该也是同样的思路,但是具体的实现方法楼主得查一下资料了.RFT应该也提供了相应的API来操作数据池的.
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2009-2-17 16:39:20 | 只看该作者

回复 2# 的帖子

我也是用excel引入的,用一列来记录行标吗?如何指定数据池中的某一行呢?很郁闷,能详细说一下吗?

[ 本帖最后由 ezabella 于 2009-2-17 16:54 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-2-17 17:41:26 | 只看该作者
用excel来存储的话,首先你需要在你的测试项目中引入jxl.jar,这是一个开源的excel api包,提供了很多操作excel的方法,其他的jar包也可以,
当你能操作excel的时候,你就把你的测试数据放到excel表里,行标不用你来记录的,所谓的行标就是excel里的行号,从第一行到第65520行;如果要指定数据池中的某一行,直接把在读excel的操作中指定行号就可以.具体的实现步骤如下:
1、首先获取excel表中一共有多少列数据(jxl的api提供);
2、然后利用一个循环,读取excel中指定行上的所有列的数据,比如说你想指定读取第5行,那么代码写出来可能类似如下形式:
                        Workbook b = Workbook.getWorkbook(new File("excel文件的路径“));
                        Sheet sheet = b.getSheet(index);
                        col = sheet.getColumns();
                        row = sheet.getRows();
                        String value = "";
                        for (int i = 0; i < col; i++) {
                                        value = sheet.getCell(i, 5).getContents();
                        }
                        b.close();
                        return value;//将读取结果返回
这样,你就把excel中第5行的数据完全读取出来了。
3、每读取一个单元格,将结果返回,供外部的脚本读取执行(在我的项目中我是这么干的)
关键就是在于对测试数据的组织和对excel的操作,前者是你的测试设计,后者是编码实现。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2009-2-18 11:53:04 | 只看该作者
我搞了一阵子,还没解决,
一个是jar已经下载了,放在IBM\SDP70\jdk\jre\lib\ext目录下,不知道这个位置对不对,如何导入呢?
我想用另一种方式实现数据池读取指定行数的记录,写了一阵子,就是不知道怎么实现数据池总行数的获取,如何“指定行标”,还请高手执教!                  
                  DatapoolScriptSupport dpss = new DatapoolScriptSupport();
                org.eclipse.hyades.execution.runtime.datapool.IDatapool dp;
                java.io.File dpfile = new java.io.File("数据池的位置");
                dp = dpss.dpFactory().load(dpfile,true);
                IDatapoolIterator dpIter = dpss.dpFactory().open(dp,"");
                dpIter.dpInitialize(dp);

[ 本帖最后由 ezabella 于 2009-2-18 12:03 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2009-2-18 12:09:28 | 只看该作者
那个JAR包放在哪里无所谓,但是要在你的项目中引用,具体的做法是在你的项目节点上右键——属性——JAVA构建路径——库,然后点击“添加外部JAR“按钮,把你的那个JAR包添加进来就可以了。
看你的代码,你应该用的是rft自带的数据池,它的API我没用过,帮不上忙了。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2009-2-19 15:41:50 | 只看该作者
问题解决了,如果使用rft自己的数据池,是这样实现的
public class debugScript extends debugScriptHelper
{        public void testMain(Object[] args)
        {
                int rowbegin = 1;  //起始行
                int rowend=2;      //截止行
                int numRecords = dpCurrent().getEquivalenceClass().getRecordCount();  //数据池总行数
                if (rowbegin > 0 && rowend>0 && rowbegin <= rowend && rowend <= numRecords)
                {
                                while (dpInt("rowNumber")!= rowbegin)  //rowNumber、test1是数据池变量
                                {
                                        dpNext();
                                }
                                System.out.print(dpInt("rowNumber")+dpString("test1"));
                                while(dpInt("rowNumber")<=rowend)
                                {
                                        dpNext();                                       
                                       
                                }
                                System.out.print(dpInt("rowNumber")+dpString("test1"));
                }
                else
                {
                        System.out.println("The specified row is not in datapool");
                }
               
        }
}

[ 本帖最后由 ezabella 于 2009-2-19 15:45 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2009-6-8 11:31:57 | 只看该作者

回复 4# 的帖子

Workbook b = Workbook.getWorkbook(new File("xls路径"));
请问一下excel文件的路径怎么写?脚本已经关联了数据池,有rftdp文件(e:\1.rftdp),不知道这种情况怎么写?还请指教,多谢了!

[ 本帖最后由 ezabella 于 2009-6-8 11:52 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2009-6-8 12:02:47 | 只看该作者
原帖由 ezabella 于 2009-6-8 11:31 发表
Workbook b = Workbook.getWorkbook(new File("xls路径"));
请问一下excel文件的路径怎么写?脚本已经关联了数据池,有rftdp文件(e:\1.rftdp),不知道这种情况怎么写?还请指教,多谢了!

excel路径就把excel文件的目录写进去就行啊。
如何使用excel与你的脚本是否关联数据池是没有关系的,他们是两个文件,不知道你写脚本的时候碰到什么问题了吗?
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2009-6-8 12:58:48 | 只看该作者

回复 9# 的帖子

Workbook b = Workbook.getWorkbook(new File("e:\1.xls"));
提示未处理的异常ioexception
提示未处理的异常biffexception
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2009-6-8 15:19:09 | 只看该作者
"e:\1.xls"改成"e:\\1.xls",你写成单折号了,在JAVA里,单折号表示转义,写成单折号的话,它无法正确识别出路径来。而且可能你还没有加try{}catch{}块,所以才会提示你未处理的异常ioexception

[ 本帖最后由 dreamever 于 2009-6-8 15:23 编辑 ]
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-22 12:17 , Processed in 0.076393 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表