songyq521 发表于 2009-5-12 08:12:53

能不能用脚本代码实现调用外部的action?

能不能用脚本代码实现调用外部的action?

在QTP中,有一种方式是通过call to existing action来实现该操作的,

现在我想在脚本中实现这个功能,不知道能有没有这个方法?!

因为我现在要做一个测试,根据excel中的设置去调用不同的action组成 scenario进行测试!这只是我的想法!

zhyb_2008 发表于 2009-5-12 09:47:37

没搞清楚楼主要做什么.关注中...帮顶一下.

songyq521 发表于 2009-5-12 11:27:11

我的意思是:
一个EXCEL存放的是testcase信息,另外一个excel存放的是一特定testcase的steps。
每个step是一个action,action我是已经做好的。

我想利用这些action存放在step里去组成testcase。

所以我需要去动态调用这些action,不知道可不可行?

52042722 发表于 2009-5-12 11:43:07

LZ 想用脚本 实现call to existing action 这个功能? 值得思考

zte_boy 发表于 2009-5-12 15:48:34

当然可以阿,和在action调用外部action没有什么区别阿,就是runaction XXX,只不过是XXX用参数替换了而已

52042722 发表于 2009-5-14 13:29:12

原帖由 zte_boy 于 2009-5-12 15:48 发表 http://bbs.51testing.com/images/common/back.gif
当然可以阿,和在action调用外部action没有什么区别阿,就是runaction XXX,只不过是XXX用参数替换了而已


XXX用参数,怎么替换呢,要写什么样的参数才能执行不在这个用例里面的Action呢,,楼上所说的方法,必须是Action已经在这个用例里面了吧,

songyq521 发表于 2009-5-15 10:40:35

沛哥,具体那个参数是怎么样的?这个怎么实现的啊?

angek 发表于 2009-5-15 11:29:53

是啊,我也是想实现这样的功能,期待有人能够给出比较好的方法

fei.ge 发表于 2009-5-15 13:55:47

我也想知道j,调用可以复用的action的语句。

Runaction "g:\test1\action1" 也不行。
备注:g:\test1\action1,是我已经写好并且设置可调用的action

itisok 发表于 2009-5-15 14:02:30

楼上的方法在qtp8.x或者9.x中是不支持的。
Before you can use the RunAction statement in the Expert View for an external action, you must first call or copy the external action into your test by choosing Insert > Copy of Action or Call to Action. If the external action does not exist in your test, the RunAction statement is not recognized.
如果想支持这个功能,只有升级QTP了

fei.ge 发表于 2009-5-15 14:34:38

楼上的意思是:要升级QTP?升级版本还是升级。。,我是QTP9.2

另外:现阶段只能用Insert--->call to existing action

songyq521 发表于 2009-5-15 18:06:20

我的是9.5版本的!

hsjzfling 发表于 2009-5-15 19:27:03

回复 3# 的帖子

在QTP中应该是不支持用代码实现调用外部Action的。QTP的AOM中也没有给Action(s)对象与集合提供Add等方法。

粗略看了下,可以采用两种变通的方法:
1. TestCase在一个Test中定义好,一个Action就是一个TestCase或者一个Function是一个TestCase
2. 将对象库与代码分离,这样也不会有调用Action的麻烦了

itisok 发表于 2009-5-16 19:01:49

回复 11# 的帖子

升级到qtp10,支持LoadAndRunAction

hsjzfling 发表于 2009-5-18 10:01:32

看来得用用10了,还是更新了不少功能呀

zte_boy 发表于 2009-5-18 11:29:21

原帖由 hsjzfling 于 2009-5-15 19:27 发表 http://bbs.51testing.com/images/common/back.gif
在QTP中应该是不支持用代码实现调用外部Action的。QTP的AOM中也没有给Action(s)对象与集合提供Add等方法。

粗略看了下,可以采用两种变通的方法:
1. TestCase在一个Test中定义好,一个Action就是一个TestCase或 ...
10之前的版本也是可以用代码调用外部Action的,这个我以前试过,只不过需要在调用的action上关联上外部action的绝对或者相对路径

zte_boy 发表于 2009-5-18 11:44:07

呵呵

只不过这种方式很麻烦,没增加一个外部action,都要在主调action中增加相应的被调action,一般来说我们推荐采用vbs组织function的形式来调用,比较方便
给个实例,其中可以把具体的action参数了,保存在一个外部 txt文件,利用fso读出来循环执行就是了

hsjzfling 发表于 2009-5-18 12:06:25

回复 16# 的帖子

关键就是9.2中关联外部action这个动作没法用QTP提供的方法动态的用脚本来执行。。。不然写一个共用的函数就能比较方便的来调用外部Action了。照14楼的说法,10中支持LoadAndRunAction就可以自动的去Load Action了,这样就可以直接动态来调外部Action了。

hsjzfling 发表于 2009-5-18 12:07:58

回复 17# 的帖子

用VBS组织Function的方式还是很不错的,以前一直这样用~~:)

fei.ge 发表于 2009-5-18 13:56:52

【10之前的版本也是可以用代码调用外部Action的,这个我以前试过,只不过需要在调用的action上关联上外部action的绝对或者相对路径】
<<<“调用的action上关联外部的antion绝对或相对地址”,该如何关联呢?
举个例子:如果存在,g:\test1\action1,是我已经写好并且设置可调用的action。
那么我的语句该如何写呢? RunAction "G:\test1\Action1", oneIteration    ??

【只不过这种方式很麻烦,没增加一个外部action,都要在主调action中增加相应的被调action,一般来说我们推荐采用vbs组织function的形式来调用,比较方便
给个实例,其中可以把具体的action参数了,保存在一个外部 txt文件,利用fso读出来循环执行就是了】
<<<这个脚本是哪个版本的QTP写的?9.5的吗?
打不开脚本,只能看你的代码了:
你主脚本里只有:
==================================
RunAction "Action1 ", oneIteration
RunAction "Action1 ", oneIteration
==================================
“可以把具体的action参数了,保存在一个外部 txt文件,利用fso读出来循环执行就是了”,好像没有体现出来.....?
页: [1] 2
查看完整版本: 能不能用脚本代码实现调用外部的action?