51Testing软件测试论坛

标题: QTP:怎么样才能使循环里面套循环 [打印本页]

作者: smilefly    时间: 2008-3-6 17:41
标题: QTP:怎么样才能使循环里面套循环
请前辈帮忙:我录制的QTP已经action分割循环啦,怎样才能让这几个action多次循环,并需要改变其中一个action的参数
如:
                                           打开同一文件
                            |
                                            action循环(改变的)
                                                        |
                                            保存为不同名字

重复做以上动作,保存不同文件,QTP可以实现的吗
作者: smilefly    时间: 2008-3-6 18:02
发现了一个死办法,把前面的这些流程复制,然后改变ACTION里面的参数
如果谁有好办法,请留言哦
作者: smilefly    时间: 2008-3-6 18:02
发现了一个死办法,把前面的这些流程复制,然后改变ACTION里面的参数
如果谁有好办法,请留言哦
作者: hsjzfling    时间: 2008-3-6 18:11
当然可以了~~虽然完全没必要为了这一小操作单独建个Action~~
最简单的方法,写个Function比如
Function FileSaveAs(sourceFile,targetFile)
        Set fso=CreateObject("Scripting.FileSystemObject")
        Set MyFile=fso.GetFile(sourceFile)
        MyFile.Copy targetFile
        Set MyFile=Nothing
        Set fso=Nothing
End Function

然后写个For循环来调用这个Function就好了~比如
For i=1 To 10
        Call FileSaveAs("C:\test.txt","C:\test"&i&".txt")
Next
这样做比较好维护些~否则一堆杂乱无章的Action堆在那里,关系又不明不白的,就算自己不晕那看的人也晕了。。。
作者: 红色异端    时间: 2008-3-6 22:02
LZ的,能跟我解释下这个代码,每条是什么意思吗?这个是VB语言吗?我怎么看不懂!!!
作者: smilefly    时间: 2008-3-7 10:51
sourceFile为打开的文件,targetFile为保存的文件,
然后循环这一动作
是不是这样呀
如果是这样,问题是我的 action循环(改变的)  这个 分割的action每次循环参数是改变的
怎样才能让他每次都改变参数然后又循环

我以上的已经分割成3个action了
作者: hsjzfling    时间: 2008-3-7 11:36
就当是你在熟悉使用Action吧。。。。。。
没搞明白你的 action循环(改变的) 是什么东西,有什么功能?分割Action时注意每个Action至少得能完成一个独立的功能或操作~

若你是要练习Action,那么不妨将实现文件另存为功能的Action(叫它FileSaveAs吧)作为Reusable Action,然后在MainAction中来调用它,只要在MainAction中写
For iRow=1 To DataTable.GetSheet(1).GetRowCount
        RunAction "FileSaveAs",0,DataTable(1,1) '假设GlobalSheet的第一列就储存你要另存为的文件名
Next
在FileSaveAs Action中有一个输入参数用来接收变化的文件名参数,然后去执行另存为操作,如此即可
作者: smilefly    时间: 2008-3-7 16:12
Window("Rakuform FormEditor(可変帳票)").Window("111").WinObject("Afx:00400000:8:00010011:000000").Click DataTable("p_X", dtLocalSheet), DataTable("p_Y", dtLocalSheet), micRightBtn
Window("Rakuform FormEditor(可変帳票)").WinMenu("ContextMenu").Select "関数設定(F)"
Window("Rakuform FormEditor(可変帳票)").Dialog("関数設定").WinEditor("条件").Type DataTable("t_if", dtLocalSheet)
Window("Rakuform FormEditor(可変帳票)").Dialog("関数設定").WinEditor("条件が真の場合の動作").SetCaretPos 0,0
Window("Rakuform FormEditor(可変帳票)").Dialog("関数設定").Activate
Window("Rakuform FormEditor(可変帳票)").Dialog("関数設定").WinEditor("条件が真の場合の動作").Type DataTable("t_true", dtLocalSheet)
Window("Rakuform FormEditor(可変帳票)").Dialog("関数設定").WinEditor("条件が偽の場合の動作").SetCaretPos 0,0
Window("Rakuform FormEditor(可変帳票)").Dialog("関数設定").Activate
Window("Rakuform FormEditor(可変帳票)").Dialog("関数設定").WinEditor("条件が偽の場合の動作").Type DataTable("t_false", dtLocalSheet)
Window("Rakuform FormEditor(可変帳票)").Dialog("関数設定").WinButton("OK").Click

上面的还不是很懂,以上的为 action循环(改变的) ,这个ACTION里面有循环
作者: hsjzfling    时间: 2008-3-7 17:07
汗。。。原来说的都不是一回事。。。
不过在7楼写的方法可以让你在一个Action中循环调用其它的Action,你参考下好了,不懂的可以查帮助,帮助中都有的
作者: caodongjian    时间: 2008-3-7 17:13
可以help中找找RunAction 看看
作者: smilefly    时间: 2008-3-7 17:27
都是英文,
感谢你们的帮忙,这几天问了两个问题,收获真不少
那个文件复制发现了专家模式太神奇拉,继续努力




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