51Testing软件测试论坛

标题: Action call properties 和 test settings中的run的区别 [打印本页]

作者: zhumingwei    时间: 2007-8-22 22:03
标题: Action call properties 和 test settings中的run的区别
这个两个中的run有什么区别?
如图:
作者: hsjzfling    时间: 2007-8-22 23:26
主要是依据DataTable来区分:
Action call properties 中的rows是指LocalSheet中的数据行数
test settings 中的rows是指GlobalSheet中的数据行数
作者: majesty    时间: 2007-8-23 00:03
一个控制当前action的循环次数,一个则对应整个操作的循环次数
作者: walker1020    时间: 2007-8-23 01:13
非常感谢 hsjzfling 的回复。不过这个实在是不好记忆,本人更喜欢自己写代码去控制循环
作者: walker1020    时间: 2007-8-23 01:14
原帖由 majesty 于 2007-8-23 00:03 发表
一个控制当前action的循环次数,一个则对应整个操作的循环次数


majesty 说的对,DataTable实现的效果就是循环!
作者: zhumingwei    时间: 2007-8-23 20:14
原帖由 walker1020 于 2007-8-23 01:13 发表
非常感谢 hsjzfling 的回复。不过这个实在是不好记忆,本人更喜欢自己写代码去控制循环

walker2000兄能否把你常用的控制代码帖出来共享一下.我也写了控制代码.可是如果testing中是run all rows的话.控制的还是不好.
作者: walker1020    时间: 2007-8-23 23:11
如果对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
如果对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
GetSheet、GetRowCount 和 SetCurrentRow的用法  在 QTP的帮助里有详细说明,在此就不累述了。
作者: walker1020    时间: 2007-8-23 23:24
标题: To zhumingwei
原帖由 zhumingwei 于 2007-8-23 20:14 发表

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


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

[ 本帖最后由 walker1020 于 2007-8-23 23:32 编辑 ]
作者: yabest    时间: 2007-8-24 02:05
原帖由 walker1020 于 2007-8-23 23:24 发表


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


呵呵,连老大的名字你都敢写错,还想不想在这里混了?!
作者: zhumingwei    时间: 2007-8-27 21:04
多谢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
标题: 回复 4# 的帖子
有点厉害啊。佩服佩服
作者: lin85210    时间: 2008-12-30 11:32
不错
作者: ld469    时间: 2011-7-15 13:59
非常感谢,又学会一招儿。




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