51Testing软件测试论坛

标题: QTP9.2 Data Table参数的问题 [打印本页]

作者: ice1216    时间: 2010-6-9 10:51
标题: QTP9.2 Data Table参数的问题
前段时间用QTP测试一个项目,其中在两个字段中加个FOR循环,并且其中一个字段参数化。但是发现有的时候,列中的参数都执行完毕了,可是还在继续FOR循环,并且输入的都是空值。开始以为是 FOR循环的问题,但问题并不在这里。昨天又试了一些数据,发现问题竟然出现在Data Table中。
Dim i,j
j=Datatable.GetRowCount
For i=1to j
        Datatable.SetCurrentRow(i)
        
Browser("XXXX").Page("XXX").Frame("mainFrame_detail").WebEdit("WebEdit_2").Set DataTable("test", dtGlobalSheet)
Browser("XXXX").Page("XXX").Frame("mainFrame_detail").WebButton("确认").Click
Next

目前的问题:
1、假设我对字段A进行参数化,有5个参数值,运行OK。然后我更换参数,只有3个参数值,运行结果为:
   a)3个参数顺利输入;
   b)3个参数输入后,没有跳出FOR循环,而是输入空值,点击确认;再输入空值,点击确认。然后跳出FOR循环
   ==》所以我的疑问是:为什么要再走两次空值的循环?(这个我已经验证过了,加入我第一次参数10个值,第二次参数3个,那么FOR循环时就会出现7次的输入空值)
2、Data Table中,在没有对第一行输入值的情况下,就不能对后面的行添加值?
   如下图,之前我在test里参数了16个值,然后我只能对17行输入值,无法在18行输入。这是QTP限制的?
作者: 今天有雾    时间: 2010-6-9 11:10
你的第一个问题的原因,是你虽然清白的数据,但是最好能删除一下下面的空行,因为datatable认为你存在数据的

你的第二个问题应该与当前的这段脚本没有关系吧,一个是读取,一个是写入datatable呀

[ 本帖最后由 今天有雾 于 2010-6-9 11:12 编辑 ]
作者: hanjj    时间: 2010-6-9 11:33
在取单元格数据的时候判断是否是空值,如果空值跳出循环
作者: ice1216    时间: 2010-6-9 13:53
标题: 回复 2# 的帖子
1、如何删除下面的空行呢?
2、第二个问题是和脚本没关系,我就是问问是不是QTP就的这样设计的,还是我的版本有问题
作者: ice1216    时间: 2010-6-9 14:23
标题: 回复 3# 的帖子
多谢,这个办法可行!
作者: yahuu    时间: 2010-6-9 15:42
和excel中使用 ActiveSheet.UsedRange.Rows.Count 是一个意思,你把数据删除了,但是它会认为你在里面放了一个空白
你如果把之前写过数据的行删除,就不会有这个问题了
当然,3楼这种方法是一定要做的,这个才是好习惯。
作者: ice1216    时间: 2010-6-10 14:21
求具体删除空白行方法……
作者: 今天有雾    时间: 2010-6-10 17:01
你怎么删除,就是选中那几行空行后,点击del键就可以了,不知道你是不是这个问题了
作者: 今天有雾    时间: 2010-6-10 17:02
第二个问题跟QTP没有关系,你可以使用程序实现的,具体的例子可以从help帮助文档中寻找
作者: yahuu    时间: 2010-6-11 16:11
删除空行用CTRL+K或者用CTRL+X
作者: Cara.Gao    时间: 2010-6-18 14:39
回复第2个问题:
据我研究QTP帮助文档所知,第2个问题确是QTP设计就是这样的。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2