远程执行HP ALM测试套件时遇到麻烦

时间:2013-06-12 20:50:22

标签: c# api ota hp-quality-center

我试图以编程方式在ALM中调用测试套件。当我执行代码时(当我的机器充当测试运行器时)我在本地机器上运行指定的测试套件没有问题。当我试图指向远程服务器运行所述测试套件时,我遇到了一个问题。此处发布的代码和错误消息:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TDAPIOLELib;


        // Connect to ALM
        ITDConnection itdc = new TDConnection();
        itdc.InitConnectionEx(url);
        itdc.ConnectProjectEx(domain, projectName, username, pswd);

        if (itdc.ProjectConnected)
        {
            List<string> testInfo = new List<string>();

            string testFolder = "Root\\<Folder>\\<Folder>";
            testSetName = "<TestSuite>";

            TestSetFactory tsFactory = (TestSetFactory)itdc.TestSetFactory;
            TestSetTreeManager tsTreeMgr = (TestSetTreeManager)itdc.TestSetTreeManager;

            TestSetFolder tsFolder = (TestSetFolder)tsTreeMgr.get_NodeByPath(testFolder);
            List tList = tsFolder.FindTestSets(testSetName, false, null);
            TestSet testset = tList[1];

            TSScheduler scheduler = testset.StartExecution("<RemoteServerName>"); // Contain server name unless local
            // scheduler.RunAllLocally = true; // Included when ran local
            scheduler.Run();                
        }

我在'scheduler'声明行收到的错误消息是“Class not registered(HRESULT异常:0x80040154(REGDB_E_CLASSNOTREG))”。

我已在本地计算机和我尝试执行的计算机上注册了OTAClient.dll。

任何建议将不胜感激。

  • 后续步骤
    • 打电话给一位年轻的老牧师。

2 个答案:

答案 0 :(得分:2)

我弄清楚问题是什么。如果这个库上有更多的文档可能会很好。

您需要在执行开始之前设置一些TSScheduler属性。所以这一行:

TSScheduler scheduler = testset.StartExecution("<RemoteServerName>"); // Contain server name unless local
// scheduler.RunAllLocally = true; // Included when ran local
scheduler.Run(); 

成为这个:

TSScheduler scheduler = testset.StartExecution(""); // Contain server name unless local
scheduler.TdHostName = "<test_runner_name>";
scheduler.LogEnabled = true;
scheduler.Run(testset.ID);

如果您确认已在计算机上安装了所有必需的ALM加载项,那么也是个好主意。特别是“HP Quality Center Connectivity”和“HP Quality Center System Test Remote Agent”加载项。为了确保,我重新安装在我的测试代理上。

希望这有助于将来的其他人。

答案 1 :(得分:2)

我已经在使用

TSScheduler scheduler = testSet.StartExecution("");

我们在QC10中有一个可行的解决方案,但最近已升级到QC12。安装位于

的连接
  

yourALMURL.com/qcbin/TDConnectivity_index.html

允许我们在VS2013 / C#中使用COM对象,连接到QC等但是会因为上面代码中出现的错误而失败。

  

未注册的类(HRESULT异常:0x80040154(REGDB_E_CLASSNOTREG))

最终我们发现您还需要注册您的客户&#39;通过工具/客户注册:

  

https://yourALMURL.com/qcbin/CommonMode_index.html

以管理员身份运行IE,并在该页面上安装组件。

我希望这有助于某人:)