51Testing软件测试论坛

标题: QTP用DataTable进行数据驱动循环次数以及范围的问题。 [打印本页]

作者: wxy5g    时间: 2011-4-13 15:08
标题: QTP用DataTable进行数据驱动循环次数以及范围的问题。
在测试的过程中遇到了一个这样的问题:
我编写了一段脚本由A、B、C三个部分组成,现在B部分是使用Datatable数据驱动填一个表单,也就是这个B部分是要根据dtGlobalTable中的行数进行循环填写。
现在问题出现了,我现在在使用B部分的Datatable进行数据驱动时,A、C部分也要跟着循环,这个A、C部分是登陆和退出等操作,没有必要每次都执行,请大家给点意见这个问题要怎么解决呢 ?我现在只想让B部分循环,A、C部分只执行一次就OK了。
  先谢谢大家了~~~~~
作者: zj_2782495    时间: 2011-4-13 15:27
把登录和退出都写成通用的function A, Function or Sub C,中间填写表单部分单独携程另外一个function B, 然后在一个action中call A B C, 循环只在 B中进行。
作者: wxy5g    时间: 2011-4-13 17:43
回复 2# zj_2782495


    嗯, 我试着把登陆和退出写到Function里,B还是原来的代码没有封到Function里,结果没有效果,(因为登陆和退出这样的可以重用)。谢谢帮忙~~~
作者: 布阿泽雨    时间: 2011-4-13 22:32
可以将脚本拆分成Action A 、 Action B 、Action C
A 和 C并列关系 然后再A中调用 B
RunAction "B", allIterations
作者: wxy5g    时间: 2011-4-14 11:18
回复 4# 布阿泽雨


    你好,我试了您说的这个方法,但是还是不行。
格式是这样的
Function
   action1
         action2(被1调用)
   action3
现在的结果还是每次遍历Global Sheet的数据时每个action都要执行。
不知道是不是我的哪个地方设置的有问题???
但是还是要谢谢你~~~
作者: lanchozxd    时间: 2011-4-14 15:12
回复 5# wxy5g


    file-setting- run 中设置run one iteration only...,然后再for循环action2
作者: wxy5g    时间: 2011-4-14 15:33
回复 6# lanchozxd


    嗯,这样也可以。我现在使用的方法是
function
  Action1
  Action2
  Action3
创建三个Action
在Datatable中的Action2 sheet中填写了我要驱动Action2的数据,在Action2的代码中使用了Datatable(“A”,dtLocalSheet),然后再到左边框的Function中的Action->Action call Propertes->Run from row设置为数据的组数就可以了。其他的Action设置都默认一次。

问题终于解决了,谢谢大家!!!嘿嘿
作者: flouda    时间: 2011-4-14 15:53
本质是  DataSheet   Local  和 Global 的区别




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