我发现了 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