2

据我所知,没有关于 QTP 的 Ext 的问题得到解答。sdk on stackoverflow(以及网络上的几乎任何其他地方;甚至没有适当的标签......),所以我知道我不太可能通过询问来解决我的问题,但无论如何,值得一试。

无论如何,在我失去任何从未听过或使用过分机的人的注意之前。sdk,也许我会更幸运地请您帮助我找出如何定位 QTP 在运行时生成的错误日志文件。我知道在新的 UFT 11.5 版本中存在这样的文件,但我在 QTP 10 或 11 中找不到它(为了记录,我不谈论 QTP 的日志跟踪功能,而是谈论“元”错误日志QTP 本身产生的错误/异常)。

现在的问题是:我正在为 QTP 开发一个扩展,以支持本机记录并在我的应用程序上运行测试。我目前能够导入对象存储库,并使用我开发的 COM 对象测试代理编写测试步骤。当我尝试实现 IRecordable 接口时,问题就开始了;我从 qtp 获取 IRecorder 对象,甚至可以将其用作 ISuppressor 对象以排除多余的步骤被记录,但我所有尝试记录一个步骤(即,将新记录的对象添加到存储库,并添加测试步骤)只是失败了。

这是我正在使用的代码:

public class MyTestingAgent :
    AutInterface.ITestable, 
    AutInterface.IRecordable
{
    QTPInterface.IRecorder recorder;
    ...

    public void AutInterface.IRecordable.BeginRecording(object recorder)
    {
        IRecordSuppressor recordSuppressor = recorder as IRecordSuppressor;
        recordSuppressor.Suppress(MyTestingAgentId, 
            "<Suppress><Item type=\"HWND\" value=\"[@HWND]\" /></Suppress>".Replace("[@HWND]", getMyAppHWND().ToString()));

        this.recorder = recorder as QTPInterface.IRecorder;
        ...
    }

    public void recordNewObjStep(string parentName, string objName, string method, Object[] arguments) 
    {
        object[] objectHyrarchy = new object[] { findObjectId(objName), findObjectId(parentName) };
        string externalParent = null;
        string appDescriptionXml = getDescriptionXml(parentName, objName);
        try
        {
            recorder.Record(MyTestingAgentId, objectHyrarchy , appDescriptionXml, externalParent, method, arguments);
            Trace.TraceInformation("Record successfully done.");
        }
        catch (Exception e)
        {
            Trace.TraceError("TEAAgent.recordSTElement: " + e.ToString());
        }
    }
    ...
}

我很确定我通过调用 Record() 发送的所有参数都是准确的。getDescriptionXml() 和 findObjectId() 在代码中用于不同的情况,并且工作正常,方法名称和参数正确。

烦人的是对 Record 的调用甚至没有抛出异常,我得到“Record succeeded done”。在跟踪日志中。不用说,没有在存储库中创建新对象,也没有向测试添加任何步骤。

由于我无法调试 QTP,因此我对自己做错的事情一无所知。这就是为什么我寻求帮助以查找 QTP 的日志文件,或者任何其他可能对这个主题有所启发的方法。

4

1 回答 1

2

对于 QTP 11,您可以通过转到 QTP 的 bin 目录并运行ClientLogs.exe来打开日志。

专门针对 TEA 可扩展性执行以下操作。

  1. 从左侧列表中选择QTP节点
  2. 可用类别列表中找到LogCatPackTEA
  3. 单击>按钮将其移动到选定类别
  4. 通过选择类别并更改级别将 TEA 级别更改为Debug2
  5. 单击OK并运行 QTP

日志将在 Path 中指定的目录中显示为QTP.log

我很好奇您遇到的问题是什么,如果您找到原因,请更新。

截屏

于 2013-05-02T08:46:03.457 回答