UFT-我可以在运行期间获得操作的结果吗?

时间:2014-12-05 13:00:04

标签: testing vbscript automated-tests qtp hp-uft

我创建了一个带有1个动作的测试,其中包含n个动作。有没有办法在执行n个动作的每个动作后检查结果,如果它失败或通过并相应地进行?

1 个答案:

答案 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)。我怀疑这是因为它不是真正的SubSub,而是以某种异乎寻常的方式“修补”MS VBScript引擎的特殊声明。