【问题标题】:Get a reference to Quality Center API Interface ISupportCopyPaste using QuickTest Pro使用 QuickTest Pro 获取对 Quality Center API 接口 ISupportCopyPaste 的参考
【发布时间】:2011-01-30 05:36:17
【问题描述】:

Quality Center OTA API 提供 ISupportCopyPaste(使用剪贴板复制/粘贴数据)等接口。获取对已实现接口的引用的记录方法是:

'Declare a variable to hold the reference for the interface 
Dim bf As IBaseFactory2 
' By assigning the implementing object reference to the 
' IBaseFactory2 type variable, the type is cast to that of the 
' implemented interface. The new variable is a reference to the 
' IBaseFactory2 interface within the parent object. 
' tdc is the global TDConnection object. 
Set bf = tdc.BugFactory

上面的代码是用VB写的(我不想用)。
但是,QTP 不允许在 Dim 语句中使用“As”。
谁能告诉如何使用 QTP 获得参考?
这个问题的任何其他解决方案?例如:使用 Python Win32

【问题讨论】:

    标签: python api vbscript qtp hp-quality-center


    【解决方案1】:

    QTP“不允许在Dim 语句中使用As”的原因是QTP脚本是基于VBScript不是VB,而As是仅限 VB(VBScript 是动态类型的)。

    如果您想在 QTP 中使用 OTA,您可以尝试使用 QTP 公开的 QCUtil 对象(有关详细信息,请参阅 QTP 的帮助)。

    如果QCUtil 没有为您提供所需的对象,您可以使用任何知道如何与 COM 交互的语言来创建 OTA 对象(这些语言包括但不限于 VB、VBScript、C++和 .NET 语言,我不确定 Python)。

    如果您选择使用 VBScript,您可以使用 VBScript 的 CreateObject 函数创建 OTA 对象(搜索 CreateObject OTA 了解更多信息)。

    【讨论】:

    • 感谢您提供更好的解释。我已经能够使用 VBScript 和 Python 完成您提到的所有事情。但我想在 QC 中将测试集从一个文件夹“复制”到另一个文件夹。我在 OTA 参考中找不到任何复制方法(尽管有移动方法)。一种方法是实现 ISupportCopyPaste 接口。那么,我的问题是如何做到这一点?
    • @manas,如果你安装了 MS Excel,你可以使用 VBA,它支持通过 As 在 Dim 语句中进行转换。事实上,我已经使用 Excel 的 VBA 来自动化 QC 和 QTP API,并取得了巨大成功。
    【解决方案2】:

    理论上,大多数 OTA 公开的对象及其公开的接口都是 IDispatch。

    换句话说;在使用 vbscript 中的这些对象时,您实际上不必将手头的对象强制转换为 ISupportCopyPaste。您可以像调用 ISupportCopyPaste 一样调用手头对象上的方法,只需正确获取方法签名即可。

    【讨论】:

    • 我尝试了记录的方法签名但没有成功。你能给/指出任何实现接口的例子吗?
    • 任何规则都有例外,ISupportCopyPaste 就是那个例外。 ISupportCopyPaste 是 IUnknown 而不是 IDispatch。
    • 我看到的唯一选择是检查 QCUtils 是否提供您需要的功能。或者您可以编写自己的 COM 帮助程序类(让我们说在 .net 中),它允许 IUnknown 和 QueryInterface 调用。并从您的脚本中调用该类。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多