2

我为我的 QTP 10 测试构建了许多函数,其中许多函数依赖于其他相关函数。我想让我的函数导入他们需要的任何其他函数。目前,我必须遍历我的每个函数并手动关联它们的每个依赖项。

虽然我知道这ExecuteFile "C:\Functions\SampleFunction.vbs"会起作用,但缺点是 QTP 无法显示它刚刚导入的任何代码。这意味着调试代码是一场噩梦,因为 QTP 会在与实际运行的代码不对应的行上显示黄色调试指针。长话短说,这种方法一团糟。

是否有任何其他命令可以在运行时将其他 .vbs 文件导入 QTP,所以我可以让函数导入他们需要的其他函数?

4

1 回答 1

2

我发现了 Anish Pillai 的一篇名为“将函数库与 QTP 脚本关联的 4 种不同方法”的帖子,其中包含一些有用的信息。(请参阅此处的原始帖子:http ://www.automationrepository.com/2011/09/associate-function-library-to-qtp-script/ )

方法 #1是将函数与测试相关联的常用方法;那里没有什么新鲜事。

方法 #2使用 AOM(自动化对象模型)
我尝试了许多不同的变体,但它们似乎都是用于从 QTP 外部启动特定测试的脚本,而不是用于向正在运行的测试添加功能的脚本。这是他们的代码,以防它被证明有用:

'Open QTP
Set objQTP = CreateObject("QuickTest.Application")
objQTP.Launch
objQTP.Visible = True

'Open a test and associate a function library to the test
objQTP.Open "C:\Automation\SampleTest", False, False
Set objLib = objQTP.Test.Settings.Resources.Libraries

'If the library is not already associated with the test case, associate it..
If objLib.Find("C:\SampleFunctionLibrary.vbs") = -1 Then ' If library is not already added
  objLib.Add "C:\SampleFunctionLibrary.vbs", 1 ' Associate the library to the test case
End

方法 #3使用 ExecuteFile 方法具有我在问题中提出的相同缺点。可能有用,但在 QTP 10 中调试很糟糕。

方法 #4使用 LoadFunctionLibrary 方法 这是最有前途的方法。它似乎完全符合我们的需要:在测试运行时加载 vbscript 函数库。唯一的收获?它似乎只是 QTP 11+。因为我没有 QTP 11,所以我不能保证这种方法,但它看起来是完美的方法。

LoadFunctionLibrary "C:\YourFunctionLibrary_1.vbs" 'Associate a single function library
LoadFunctionLibrary "C:\FuncLib_1.vbs", "C:\FuncLib_2.vbs" 'Associate more than 1 function libraries
于 2012-11-09T00:16:12.037 回答