编写了两个Action,但在TestFlow中却只显示了一个
今天编写Flight32.exe的脚本时,明明写了两个Action(在Resources中也能看到有两个Action),但是在Test Flow中却只显示出来一个,按F5执行,也只能执行在Test Flow中显示出来的那一个Action。请问这是什么原因造成的?又如何解决呢? 猜想你可能出现了这样一个问题一开始是一个action1,然后用call to new action,新增一个
选择了“after the current step”
这样在action1里面就多了一句“RunAction "Action2", oneIteration”
然后把这句话删了,调用action2就没了,但其实action2还存在
你看一下expert view里面那个action选择的下拉框里,是不是action2还在?
如果是的话,就是这个原因了
call to new action有两种方式的
可以在test后面追加也就是action并列,也可以用action调action 没啊,我的Action1里面只有这么几句话:
Option Explicit
'进入Flight Reservation主界面
RunAction "OpenFlight32 ", oneIteration
RunAction "Login ", oneIteration
并且,在Test Flow中,执行Call To Existing Action...时,都找不到Action2的,Action2存在,但确确实实不能被使用到了...郁闷。还有,今天我新建了一个Test,本是希望将上面的Action2拷过去,结果发现DataTable的拷贝,只支持值的拷贝,表格中的公式全都拷不过去,不爽。。。 显然你出现的就是我说的问题!
你不信可以按我说的操作一遍,肯定可以重现的
你到你的脚本目录下面,找到Action0目录,用文本编辑器打开Script.mts
里面是不是有一句“RunAction "Action1", oneIteration”?
你再加一句RunAction "Action2", oneIteration
你的Action2就出来了
顺便再提醒一下,删除action其实有两种情况:一种是彻底删除action,另一种是只删除调用
像你这种情况就是删除了调用出现的,至于是删除了那一个调用我不知道,但你想让Action2跟Action1是并列而不是Action1去调用的话,照我上面说的做就行了
实际上一个脚本内Action的运行组织都在这个Action0里面 确实如rcpp所说,这样修改之后,Test Flow中的Action确实正确了!感谢rcpp
不过我感觉有些奇怪,对Action调用类型的修改,难道必须通过修改.mts文件才能完成么?MI公司的产品不应该出现这类易用性问题才是啊! 因为qtp中有一个你看不到的Action0
Action的存在和调用之间没有相关性:存在,但是可以没有调用
Action调用有两种情况,一种是脚本调用,一种是Action调用
第一种就是通过这个看不见的Action0组织脚本直接运行的Action调用
第二种就是在我们看到的Action中来调用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 谢谢,又多学到一招了!:lol 关注贴
页:
[1]