51Testing软件测试论坛

标题: Action调用与Action0 [打印本页]

作者: rcpp    时间: 2008-9-5 11:10
标题: Action调用与Action0
打开QTP脚本目录,我们可以看到有一个Action0目录,这个并不是我们自己写的,它是干什么用的呢?
打开这个Action0目录,用文本编辑器打开scrīpt.mts
可以看到一条或多条RunAction或Call RunAction
对比我们在QTP中用Keyword View查看的Action就可以看出这个结构是与之对应的,显然是与Action调用有关,记录了调用Action的顺序以及循环情况
下面我们就来分析一下QTP中Action的调用:
首先是Action的存在与被调用的关系
Action的存在和调用之间没有相关性:存在,但是可以没有调用
Action调用有两种情况,一种是脚本调用,一种是Action调用
第一种就是通过这个看不见的Action0组织脚本直接运行的Action调用
第二种就是在我们看到的Action中来调用Action

其次,我们怎么看到Action的存在和调用
要看到Action存在很容易,到Expert View,下拉框里选一下就可以看到存在的Action的内容
我们在Keyword View中两种调用都可以看到
但在Expert View中只可以看到第二种调用

再次是调用怎么修改
第二种调用可以在Expert View中添加一句RunAction ActionName来添加
但第一种调用就没法直接添加了,因为Action0是直接看不到的

可以直接改Action0的脚本内容
还有就是可以在Expert View中添加一句RunAction ActionName做成第二种调用,
再切到Keyword View,然后用拖动节点的方法变成第一种调用

另外就是用Call to Existing Action
但是只能call可复用的action,也就是要在准备调用的Action的Action Properties中勾选Reusable action

最后还要再说一下外部的调用
QTP脚本调用其它脚本的Action,只要把被调用的Action设为可复用。至于调用的方式方法等等仍遵循上述内容
作者: heqingbluesky    时间: 2008-9-5 16:41

作者: jifeng    时间: 2008-9-5 18:09
每次运行都是从Action0开始的
作者: walker1020    时间: 2009-2-21 16:25
原帖由 jifeng 于 2008-9-5 18:09 发表
每次运行都是从Action0开始的


确实只这样。一般在Action0 里面都有一行类似于 RunAction “Action1” 这样的语句来调用 运行Action1.如果 Action0 和Action1 里面都有相同的语句,通过运行,你会发现,QTP会先运行Action0里面的语句,然后再去运行Action1里面的语句。在Keyword View里面,双击Action0,你会看到Action0里面的内容。
作者: walker1020    时间: 2009-2-21 16:27
楼主对Action调用与Action0 之间的关系分析地比较透彻、到位,可以作为新手学习Action的参考资料,也有助于别的朋友在运行有关Action调用时分析问题、解决问题的依据。
作者: walker1020    时间: 2009-2-21 16:30
曾经有多个朋友遇到过与Action 调用有关的问题,如http://bbs.51testing.com/viewthread.php?tid=125676
作者: walker1020    时间: 2009-2-21 16:31
这个帖子对新手解决类似的问题非常有用,可以设为 精华帖了
作者: Iris-Zhang    时间: 2009-9-17 14:45
"直接改Action0的脚本内容"
直接在Action0的脚本中加入Call RunAction "Action1" [path], oneIteration
运行时提示Action1找不到

初步判断是因为QTP无法自动找到Action1的路径, 在网上搜了下解决方法, 说是第一次调用外部action的时候, 应该手动在Call Existing Action里面添加, 这样QTP才能正确找到路径, 如果是这样的话, 直接改动Action0就没有什么意义了.

不知道高手有没有更好的解决方法?
作者: violet82-84    时间: 2010-4-27 17:31
学习。。。“直接在Action0的脚本中加入Call RunAction "Action1" [path], oneIteration ”         [path]应在"  "内包含着吧

不知理解是否正确




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