51Testing软件测试论坛

标题: 关于一个脚本中多个action的循环控制问题 [打印本页]

作者: milo.jiang    时间: 2006-4-10 01:48
标题: 关于一个脚本中多个action的循环控制问题
我在录制脚本的时候,共分成5个action,①登录  ②actionA  ③actionB ④actionC  ⑤退出 ,现在的情况是在actionA,actionB,actionC中都有数据驱动,如果运行脚本,默认是在actonA的数据驱动循环完成后,再执行actionB的数据驱动循环,然后是actionC。
        请问,该如何才能做到让actonA执行完第一行的数据后,转而执行acitonB的第一行数据,然后是acitonC的第一行数据;接着再执行acitonA的第二行数据驱动,actionB的第二行数据,actionC的第二行数据;如此反复,直到执行完actionA,B,C的所有数据驱动(比如actionA,B,C都是5行数据)
        请各位大侠帮帮忙,敬候佳音!

[ 本帖最后由 milo.jiang 于 2006-4-10 01:57 编辑 ]
作者: 海龙    时间: 2006-4-10 09:12
设计一个主Action,调用其他五个Action。
actionA,actionB,actionC放在For循环中,并使用环境变量设置数据表的行。

在每个Action中使用 SetCurrentRow(环境变量)
作者: milo.jiang    时间: 2006-4-10 13:46
谢谢海龙:)
请你帮我看看以下的代码,为什么每次循环的时候都是循环第一行数据,是不是我的setCurrentRow设置有问题?谢谢啦
RunAction "login", oneIteration
For i=1 to 5
        datatable.GetSheet("actionA").SetCurrentRow i
        RunAction "info", oneIteration   
        datatable.GetSheet("actionB").SetCurrentRow i
        RunAction "actionB", oneIteration
        datatable.GetSheet("actionC").SetCurrentRow i
        RunAction "actionC", oneIteration
Next
RunAction "logout", oneIteration
ExitRun
作者: 海龙    时间: 2006-4-10 14:14
你是想每次执行脚步时从上一次执行的下一行开始执行?
如果是,你需要保存已经执行完的行数,如执行的第三行,下次执行第四行,则应该将3保存到文件或者其他位置,下次执行的时候读出来。
作者: milo.jiang    时间: 2006-4-10 15:09
该怎么保存执行的行数,下次执行的时候读取出来,能把代码写一下吗?麻烦您了,海龙,谢谢
作者: aries1979    时间: 2006-4-10 16:35
你这样写应该是只会RUN第一行的数据吧,按照海龙的说法应该是
RunAction "login", oneIteration
For i=1 to 5
        Environment.value("CuurentRowCount")=i
        RunAction "info", oneIteration   
        RunAction "actionB", oneIteration
        RunAction "actionC", oneIteration
Next
RunAction "logout", oneIteration
ExitRun

然后在actionA,B,C中用SetCurrentRow Environment.value("CurrentRowCount")来设置当前行
作者: milo.jiang    时间: 2006-4-10 17:42
可以了,谢谢海龙和aries1979,非常感谢:)希望将来在学习qtp的过程中还能得到你们热心的帮助,谢谢!




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