我创建了一个带有1个动作的测试,其中包含n个动作。有没有办法在执行n个动作的每个动作后检查结果,如果它失败或通过并相应地进行?
答案 0 :(得分:0)
不直接。
类似的想法是询问当前的运行结果状态,请参阅How can I get the run result status according to the current report node?,但目前尚未解决。
但是,您可以调用您的操作并使用返回值,如下所示:
ActionSucceeded=RunAction ("myTest [Action2]", oneIteration)
If not ActionSucceeded then
' The Action2 call signalled "failure" (false)
End If
这意味着Action2
必须返回此类结果,如下所示:
ExitActionIteration (false)
请注意,需要使用QTP的IDE(插入/号召性用语...)插入RunAction
语句,从而产生{{1}无括号调用。将此内容编辑到上面的分配表单(带括号)时,请确保在保存测试之前第一次正确使用它 - 因为如果保存包含损坏的RunAction
调用的测试,QTP会解除关联被调用的测试,即使您将脚本编辑回正确的语法,测试也会在运行时失败。这是因为metainfo将QTP无形地保存在脚本中,如果保存无效的动作调用,则会丢弃此元信息。 (您可以看到何时发生这种情况,因为操作调用将从测试流视图中消失。)
并且:如果您不将RunAction
结果存储在变量中,而是直接使用它,例如
RunAction
出现同样的混乱:QTP不明白这是一个有效的动作调用,即使你将它编辑回原始形式也不会有效。
除了“提示”提示之外,If not RunAction ("myTest [Action2]", oneIteration) then
' The Action2 call signalled "failure" (false)
End If
也是如此,它在运行时调用了一个动作。 LoadAndRunAction
可以作为函数调用,如果被调用的操作通过LoadAndRunAction
返回值,则返回该值。
另一个“提防”提示: ExitActionIteration
确实要求将其参数括在括号中,即使它是ExitActionIteration
(或者至少称为Sub
)。我怀疑这是因为它不是真正的Sub
或Sub
,而是以某种异乎寻常的方式“修补”MS VBScript引擎的特殊声明。