zhumingwei 发表于 2007-8-22 22:03:48

Action call properties 和 test settings中的run的区别

这个两个中的run有什么区别?
如图:

hsjzfling 发表于 2007-8-22 23:26:07

主要是依据DataTable来区分:
Action call properties 中的rows是指LocalSheet中的数据行数
test settings 中的rows是指GlobalSheet中的数据行数

majesty 发表于 2007-8-23 00:03:44

一个控制当前action的循环次数,一个则对应整个操作的循环次数

walker1020 发表于 2007-8-23 01:13:39

非常感谢 hsjzfling 的回复。不过这个实在是不好记忆,本人更喜欢自己写代码去控制循环

walker1020 发表于 2007-8-23 01:14:56

原帖由 majesty 于 2007-8-23 00:03 发表 http://bbs.51testing.com/images/common/back.gif
一个控制当前action的循环次数,一个则对应整个操作的循环次数

majesty 说的对,DataTable实现的效果就是循环!

zhumingwei 发表于 2007-8-23 20:14:58

原帖由 walker1020 于 2007-8-23 01:13 发表 http://bbs.51testing.com/images/common/back.gif
非常感谢 hsjzfling 的回复。不过这个实在是不好记忆,本人更喜欢自己写代码去控制循环
walker2000兄能否把你常用的控制代码帖出来共享一下.我也写了控制代码.可是如果testing中是run all rows的话.控制的还是不好.

walker1020 发表于 2007-8-23 23:11:55

如果对DataTable的每行数据的操作都完全一样,那么 可以这样处理:
1, 先得到DataTable的行数
    如果使用的是Local Sheet,rowcount = DataTable.GetSheet("Action1").GetRowCount
   如果使用的是Global Sheet,rowcount = DataTable.GetSheet("Global").GetRowCount
2, 写循环 对每行的数据进行操作:
   For inter = 1 To rowcount
       DataTable.SetCurrentRow(inter)
      .......
      Next

特别说明:由于没有经过测试,所以不敢保证一定没有问题。但大体的思路就是这样的.

[ 本帖最后由 walker1020 于 2007-8-23 23:25 编辑 ]

walker1020 发表于 2007-8-23 23:21:36

如果对DataTable的每行数据的操作都不一样,那么 可以这样处理:
1, 先设置DataTable的当前行,如设置第二行为当前行

   如果使用的是Local Sheet, DataTable.GetSheet("Action1").SetCurrentRow(2)
   如果使用的是Global Sheet,DataTable.GetSheet("Global").SetCurrentRow(2)
   
2, 然后进行操作就可以了。 注意:在使用每行的数据前,都要先用上面语句设置一下当前行。如
      DataTable.GetSheet("Action1").SetCurrentRow(2)
      MsgBox("This is line 2")
      
      DataTable.GetSheet("Action1").SetCurrentRow(3)
      MsgBox("This is line 3")
      
    说明:此例子只是为了说明SetCurrentRow的用法,没有考虑实用价值。

walker1020 发表于 2007-8-23 23:23:17

GetSheet、GetRowCount 和 SetCurrentRow的用法在 QTP的帮助里有详细说明,在此就不累述了。

walker1020 发表于 2007-8-23 23:24:30

To zhumingwei

原帖由 zhumingwei 于 2007-8-23 20:14 发表 http://bbs.51testing.com/images/common/back.gif

walker2000兄能否把你常用的控制代码帖出来共享一下.我也写了控制代码.可是如果testing中是run all rows的话.控制的还是不好.

本版主的论坛名是 walker1020, 不是 walker2000!sdlkfj7sdlkfj1

[ 本帖最后由 walker1020 于 2007-8-23 23:32 编辑 ]

yabest 发表于 2007-8-24 02:05:16

原帖由 walker1020 于 2007-8-23 23:24 发表 http://bbs.51testing.com/images/common/back.gif


本版主的论坛名是 walker1020, 不是 walker2000!sdlkfj7sdlkfj1

呵呵,连老大的名字你都敢写错,还想不想在这里混了?!

zhumingwei 发表于 2007-8-27 21:04:14

多谢walker2000.因为我大学有个铁哥们叫"冲动2000"(我们是2000届).所以习惯了,还是叫你walker2000比较亲切.
另外:你上面的代码:1, 先得到DataTable的行数
    如果使用的是Local Sheet,rowcount = DataTable.GetSheet("Action1").GetRowCount
   如果使用的是Global Sheet,rowcount = DataTable.GetSheet("Global").GetRowCount
2, 写循环 对每行的数据进行操作:
   For inter = 1 To rowcount
       DataTable.SetCurrentRow(inter)
      .......
      Next
我也是这样控制的.如果不在testing中设置为run one iteration only,不是按照从第一行到最后一行运行!

wuzhiyongnihao 发表于 2008-1-23 10:10:44

回复 4# 的帖子

有点厉害啊。佩服佩服

lin85210 发表于 2008-12-30 11:32:46

不错

ld469 发表于 2011-7-15 13:59:48

非常感谢,又学会一招儿。:)
页: [1]
查看完整版本: Action call properties 和 test settings中的run的区别