51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3714|回复: 4
打印 上一主题 下一主题

[求助] 在一个QTP脚本的FOR循环里如何调用外部的action

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-1-24 19:15:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
救!!!!!!!
江湖救急啊!!!!!!!!!
For  i=1 to datatable.GetRowCount-1
datatable.SetCurrentRow(i)
        ifexecute=datatable.Value("IDX",1)
        If  ifexecute= 1 Then
                testcasefile=datatable.Value("table")
                testcasename=datatable.value("name")
                runaction $%#%&^&*
'这个地方要动态的调用一个外部的action,action name 为testcasename

end if

如上,如果是调用 外部的单一的action,可以用insert--->call copy of action,但是这里的testcasename是动态变化的,不能用insert--->call copy of action这个方法。另个网上也在不少说将action写成VBS格式的脚本,主样也可以调用。
现在想请教一下,除了这个方法,还有没有其它的方法,我主要是想调用用QTP录制好的脚本,而不是用手写的脚本
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-1-24 21:02:29 | 只看该作者
好象要实现这样的功能并不是很难。
无论是选择哪种插入脚本的模式都没关系。只是要对那个外部action进行参数化,然后参数化值就从你的datatable里读取就行了。使用for循环对脚本读取datatable参数并没有明显的影响。
我一般都比较喜欢把数据放在excel表里,然后让脚本读取excel表,虽然自己要写的代码多了点,但是我感觉方便了好多,呵呵
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-1-24 21:05:16 | 只看该作者
如果一定要采用action调用的方法,你可以把外部action都设置成reused action,然后insert -》 call to exist ing action把所有的需要调用的action都insert进到你的test里,再把所有自动生成的runaction语句删掉。再然后就可以采用你上面的方法,任何地方随意使用runaction语句。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2008-1-25 09:43:59 | 只看该作者
to dreamever:
首先谢谢你的关注,我已经对外部action进行参数化了,参数化值就是testcasename=datatable.value("name")。问题出在参数化值有N个,对这N个参数化后每个action都要做一次insert--->call copy of action操作,然后才可以使用CALLACTION这个语句,不然就会报错,提示找不到action

to gy21st:
首先谢谢你的关注,这个也是一个方法。对于action不多的办法是不错,但是一旦有很多个的话就不太好用了。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2009-9-9 17:02:08 | 只看该作者
RunAction "test_case", oneIteration,P1,P2
test_case里面的参数有两个test_case(P1,P2)

我传两个参数为什么错呢?
郁闷~
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-23 08:06 , Processed in 0.069613 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表