我可以从QTP IDE中确定当前的测试执行者或交互式测试执行者吗?

时间:2010-11-11 17:05:03

标签: automated-tests qtp qc

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

你们知道一个很酷的方式吗? WR曾经有一个批处理运行标志,可以从IDE中清除所有执行。也许QTP有这样的东西,我忽略了它?

首先,我考虑过查看OnError属性:

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

qtApp.Test.Settings.Run.OnError现在返回以下其中一个可能的值: “Dialog”,“NextIteration”,“Stop”或“NextStep”。

这样我就可以查看OnError设置,该设置可能是<> “对话”和<>当执行是测试集的一部分时,“停止”,但是:

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

2 个答案:

答案 0 :(得分:2)

无需转到自动化对象,它在Setting对象中公开。

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

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

答案 1 :(得分: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。不幸的是,如果您以交互方式运行GUI测试,它将返回true,因此它不是一个完整的解决方案。

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