2

检查当前 QTP 测试执行是否是交互式的,即不是从 QC 测试实验室启动的 QC 测试集执行的一部分,最有效的方法是什么?

大佬们知道什么好方法吗?WR 曾经有一个批处理运行标志,该标志可靠地为 IDE 内的所有执行清除。也许QTP有这样的东西,我忽略了它?

首先,我想到了看OnError属性:

Set qtApp = getObject("","QuickTest.Application")

qtApp.Test.Settings.Run.OnError现在返回以下可能值之一:“Dialog”、“NextIteration”、“Stop”或“NextStep”。

这将允许我查看OnError设置,当执行是测试集的一部分时,它可能是 <> "Dialog" 和 <> "Stop",但是:

  • 我设法在所有 QTP 测试中避免使用自动化接口,这将是我的第一个例外(早期的 QTP 版本感到困惑并启动了第二个 QTP 实例,产生了很多问题......)
  • 测试人员可能会在 QTP IDE 中执行“交互式”运行,并将此设置设置为“NextStep”或“NextIteration”,然后我会在我的代码中误解它。
  • 它不起作用,即使没有出现对话(由于从 QC 测试集执行),返回的值是“对话”。哦!
4

2 回答 2

2

不需要去自动化对象,它暴露在Setting对象中。

If Setting("IsInTestDirectorTest") Then
    Print "Run from QC"
Else
    Print "Not run from QC"
End If     

请注意,TestDirector (TD) 是 QualityCenter (QC) 的历史名称。

于 2010-11-14T13:17:13.177 回答
0

它可能是一个使用选项

Public Function IsTestSetRun ()
    Dim Result: Result=false
    If not QCUtil is Nothing then
        If not QCUtil.CurrentTestSetTest is Nothing then
            Result=true
        End If
    End If
    IsTestSetRun=Result
End Function

这是基于QCUtil.CurrentTestSetTest. 不幸的是,true如果您以交互方式运行 GUI 测试,它会返回,因此它并不是一个完整的解决方案。

但由于其他选项不适用于 BPT 组件,我现在使用此选项。

于 2016-01-13T09:32:09.970 回答