如何让QTP部分循环
我测试一个程序,分成登陆、新增、退出三个部分。我设置了参数化,运行结果是:登陆-新增-退出-登陆-新增-退出-登陆-新增-退出-……我需要的循环是这样的:登陆-新增1-新...
我测试一个程序,分成登陆、新增、退出三个部分。
我设置了参数化,运行结果是:
登陆-新增-退出-登陆-新增-退出-登陆-新增-退出-……
我需要的循环是这样的:
登陆-新增1-新增2-新增3-新增4-新增5-……-退出。
请问如何实现?
我把新增的设成一个action,登陆和注销也分别设成action,然后进行参数化运行,
结果还是三个action都运行了,郁闷,希望能给出具体的解决方案。
比如说for循环,如何循环两次(不用运行的代码,只要for代码)。 展开
我设置了参数化,运行结果是:
登陆-新增-退出-登陆-新增-退出-登陆-新增-退出-……
我需要的循环是这样的:
登陆-新增1-新增2-新增3-新增4-新增5-……-退出。
请问如何实现?
我把新增的设成一个action,登陆和注销也分别设成action,然后进行参数化运行,
结果还是三个action都运行了,郁闷,希望能给出具体的解决方案。
比如说for循环,如何循环两次(不用运行的代码,只要for代码)。 展开
3个回答
展开全部
你完全没了解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的迭代循环,没弄明白规律是容易出错的。还有什么问题再联系~
建议一:不使用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自身的功能了
好吧,补充一下:比如说你想循环Action2,那么在Test Flow选中Action2点鼠标右键,选择Action Call Properties,然后选择Run on all rows,确定。
朋友,给你个小建议:多看看QTP的帮助文档。如果你还要想实现高级功能那就要多了解一下VBS了,这样就不用在乎什么QTP自身的功能了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询