wxy5g 发表于 2011-4-13 15:08:30

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:15

把登录和退出都写成通用的function A, Function or Sub C,中间填写表单部分单独携程另外一个function B, 然后在一个action中call A B C, 循环只在 B中进行。

wxy5g 发表于 2011-4-13 17:43:45

回复 2# zj_2782495


    嗯, 我试着把登陆和退出写到Function里,B还是原来的代码没有封到Function里,结果没有效果,(因为登陆和退出这样的可以重用)。谢谢帮忙~~~

布阿泽雨 发表于 2011-4-13 22:32:07

可以将脚本拆分成Action A 、 Action B 、Action C
A 和 C并列关系 然后再A中调用 B
RunAction "B", allIterations

wxy5g 发表于 2011-4-14 11:18:28

回复 4# 布阿泽雨


    你好,我试了您说的这个方法,但是还是不行。
格式是这样的
Function
   action1
         action2(被1调用)
   action3
现在的结果还是每次遍历Global Sheet的数据时每个action都要执行。
不知道是不是我的哪个地方设置的有问题???
但是还是要谢谢你~~~

lanchozxd 发表于 2011-4-14 15:12:31

回复 5# wxy5g


    file-setting- run 中设置run one iteration only...,然后再for循环action2

wxy5g 发表于 2011-4-14 15:33:02

回复 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:04

本质是DataSheet   Local和 Global 的区别
页: [1]
查看完整版本: QTP用DataTable进行数据驱动循环次数以及范围的问题。