你完全没了解QTP的Action和DataTable间的关系~还有QTP循环迭代设置与Action的关系
建议一:不使用QTP中的循环迭代,自定义For循环调用Action。
RunAction 登陆,oneiteration
For i = 1 to 2
RunAction 新增,oneiteration
Next
RunAction 退出,oneiteration
建议二:多多了解下QTP的Action和DataTable吧~
QTP有一个隐藏Action的,既Action0,既GlobalSheet对应的Action(补充:DataTable中每个Sheet都对应一个Action,GlobalSheet也不例外的),是QTP脚本执行的入口,相当于C语言里的main函数,很多人刚使用QTP,创建一个脚本就看到Action1,以为脚本是从Action1开始的,实际上Action1是在Action0中被调用了~
Action0中的脚本一般就一句话~
RunAction Action1,oneiteration
如果你把测试数据放在GlobalSheet中,然后Setting页面又设置DataTable循环执行,那最后的结果就是使用GlobalSheet里的数据循环执行Action0,也就是所有脚本都循环。
你这种情况,解决方法就是把测试数据从GlobalSheet中移到“新增”Action的LocalSheet中,然后调用新增Action时循环迭代
如:RunAction 新增,alliterations
-------------以上两个方法都可以解决你的问题,个人建议使用For循环,如果使用QTP的迭代循环,没弄明白规律是容易出错的。还有什么问题再联系~
设置多个Action。把新增那一步单独放进一个Action中。添加Action从QTP工具中选择Insert——Cell to New Action。给你提供这个思路。具体的方法自己查一下。
好吧,补充一下:比如说你想循环Action2,那么在Test Flow选中Action2点鼠标右键,选择Action Call Properties,然后选择Run on all rows,确定。
朋友,给你个小建议:多看看QTP的帮助文档。如果你还要想实现高级功能那就要多了解一下VBS了,这样就不用在乎什么QTP自身的功能了
就用for循环新增3次