Automated tests 我可以确定当前测试执行者是来自测试实验室还是来自QTP IDE内的交互?
检查当前QTP测试执行是否是交互式的(即不是QC测试实验室启动的QC测试集执行的一部分)最有效的方法是什么 你们知道一个很酷的方法吗?WR过去有一个批处理运行标志,可以可靠地清除IDE中所有执行的批处理运行标志。也许QTP有这样的东西,我忽略了 首先,我考虑查看Automated tests 我可以确定当前测试执行者是来自测试实验室还是来自QTP IDE内的交互?,automated-tests,qtp,hp-quality-center,Automated Tests,Qtp,Hp Quality Center,检查当前QTP测试执行是否是交互式的(即不是QC测试实验室启动的QC测试集执行的一部分)最有效的方法是什么 你们知道一个很酷的方法吗?WR过去有一个批处理运行标志,可以可靠地清除IDE中所有执行的批处理运行标志。也许QTP有这样的东西,我忽略了 首先,我考虑查看OnError属性: Set qtApp = getObject("","QuickTest.Application") qtApp.Test.Settings.Run.OnError现在返回以下
OnError
属性:
Set qtApp = getObject("","QuickTest.Application")
qtApp.Test.Settings.Run.OnError
现在返回以下可能的值之一:
“对话框”、“下一步”、“停止”或“下一步”
这将允许我查看OnError
设置,当执行是测试集的一部分时,它可能是“Dialog”和“Stop”,但是:
- 我在所有QTP测试中都设法避免了自动化接口,这将是我的第一个例外(早期的QTP版本变得混乱,并启动了第二个QTP实例,造成了许多问题…)
- 测试人员可能会在QTP IDE中执行“交互式”运行,并将此设置设置为“NextStep”或“NextIteration”,然后我会在代码中对此进行误解
- 它不工作,即使对话框没有出现(由于从QC测试集执行),返回的值也是“Dialog”。啊李>
- 无需转到自动化对象,它在
设置
对象中公开
If Setting("IsInTestDirectorTest") Then Print "Run from QC" Else Print "Not run from QC" End If
请注意,TestDirector(TD)是QualityCenter(QC)的历史名称。可以使用它
它基于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
。不幸的是,如果以交互方式运行GUI测试,它将返回QCUtil.CurrentTestSetTest
,因此它不是一个真正完整的解决方案true
但由于另一个选项不适用于BPT组件,因此我现在使用此选项。Doh。那很好用。这在哪里有记录?如果没有文档记录,你怎么知道呢?即使谷歌对字符串IsInTestDirectorTest的准确点击率也为0。WTF?@theblatone,我可以告诉你,但我必须招募你。。。我不确定这是否是一个受支持的功能[无论如何,谷歌应该很快就会在
:o上至少有一个点击率]。明白了,thanx。Duke Nukem会说:“嘿嘿,真是一团糟。”附录:如果不是从TD/QC/ALM测试集中执行,则设置(“IsInTestDirectorTest”)返回空,而不是false。(由于为空,所以在显示的代码中这并不重要。)显然,该设置仅在以下情况下存在。。。IsInTestDirectorTest