【重要】很多人都在问,QTP数值参数化后,如何循环其表中数据呢?
在工作中遇上了这个问题,想从网上寻找答案,但是发现都不行。比如我想让一下数据循环100次。
表中数据:
userid passwd
0001 123
0002 235
0005 256
效果如:
(0001,123)
(0002,235)
(0005 ,256)为1次循环,接着做第二次循环。。。。
应该怎么处理呢,很多同仁都问过这个问题,
但是一直无法从网上信息得到答案,在此特请高手大侠们指点一下。
在下感激不尽。 代码代码。。。套个FOR循环就是了 本帖最后由 wugecat 于 2010-10-21 09:47 编辑
先定义一个Action2里面填入你的数据,然后设置成运行所有行,外面在套一个Action1循环调用Action2100次 3楼的 能不能将方法说的具体一点呢 3楼的方案是不行的。这样做就循环每一行100次,再循环第二行 本帖最后由 lantianwei 于 2010-10-21 10:28 编辑
很简单,QTP很久不用 只能写伪码
FOR i=1 to iTimes '你想运行的次数
for iRow=1 to 100 '运行表里的数据
datatable.SetRow iRow ‘定位到第几行
sUserName=GetData("Userid",datatable) ’获取当前行的USERID列数据
sPassword=GetData("passwrod",datatable) ‘获取当前行PASSWORD列数据
next ’定位到下一行
next ‘执行下一次循环
其实思路有很多种~ 比如表里3行,总的要循环100次表
for a = 1 to 100
for i = 1 to 3
aaaa = DataTable.GetSheet("xxx").GetParameter("yyy").ValueByRow(i)
'想干嘛干嘛
next
next 本帖最后由 wugecat 于 2010-10-21 10:51 编辑
3楼的方案是不行的。这样做就循环每一行100次,再循环第二行
唐伯虎点蚊香 发表于 2010-10-21 10:14 http://bbs.51testing.com/images/common/back.gif
怎么会不行..你吧数据加到Action2里不就完了
'ACtion1
For i=1 to 2
RunAction "Action2", allIterations
Next
'Action2
msgbox datatable("A","Action2")
Action2数据表:
A
1
2
3 很简单,QTP很久不用 只能写伪码
FOR i=1 to iTimes '你想运行的次数
for iRow=1 to 100 '运行表里的数据 ...
lantianwei 发表于 2010-10-21 10:27 http://bbs.51testing.com/images/common/back.gif
就是这样吧 实用2个for循环的方法应该是可以的,但是我个人觉得实用ation调用的方法比较好些,如:
Ation1中:
Browser("离线下载-登录").Page("离线下载-登录").WebEdit("u").Set DataTable("userid", dtLocalSheet)
Browser("离线下载-登录").Page("离线下载-登录").WebEdit("WebEdit").SetSecure DataTable("passwd2", dtLocalSheet)
Browser("离线下载-登录").Page("离线下载-登录").WebButton("登 录").Click
Browser("离线下载-登录").Page("离线下载").Link("退出").Click
'Action2,在Action2中调用Acion1
For Iterator = 1 To 1000 Step 1
RunAction "Action1", allIterations
Next
这样的话,Action1还可以被多个action重复的调用,大家觉得呢? 本帖最后由 lantianwei 于 2010-10-25 10:43 编辑
没有绝对的好坏 看你喜欢action还是function
action无非是把function进行了一个包装 让你更直观的感受它罢了 没有什么本质的区别 直接设置迭代次数啊!让Action反复的跑 如果是global参数时,通过你的设置是可以循环3次,但在dtLocalSheet参数化时,还要设置一下action的属性。
方法:找到QTP最左边一栏,Test Flow中的Action,右键点击预设置循环的Action图标,选择 Action Call Properties...——Run——>Run on all rows,然后执行脚本就可以正确循环了。
这种方法不用去修改代码,很方便的,呵呵,我上次也遇到过这样的问题,还是在网上找到的答案,希望对你有帮助。 自己手写循环语句,控制循环次数.
页:
[1]