C# 远程执行HP ALM测试套件时遇到问题

C# 远程执行HP ALM测试套件时遇到问题,c#,api,ota,hp-quality-center,C#,Api,Ota,Hp Quality Center,我试图以编程方式调用ALM中的测试套件。当我执行代码时(当我的机器充当测试运行程序时),在本地机器上运行指定的测试套件没有问题。然而,当我试图指向一个远程服务器来运行上述测试套件时,我遇到了一个问题。此处发布的代码和错误消息: using System; using System.Collections.Generic; using System.Linq; using System.Text; using TDAPIOLELib; // Connect to ALM

我试图以编程方式调用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();                
        }
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用TDAPIOLELib;
//连接到ALM
ITDConnection itdc=新的TDConnection();
itdc.InitConnectionEx(url);
ConnectProjectEx(域、项目名、用户名、pswd);
如果(itdc.ProjectConnected)
{
List testInfo=新列表();
string testFolder=“Root\\\”;
testSetName=“”;
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(“”;//除非是本地的,否则包含服务器名称
//scheduler.runalllocal=true;//在本地运行时包含
scheduler.Run();
}
我在“scheduler”声明行收到的错误消息是“类未注册(HRESULT的异常:0x80040154(REGDB_E_CLASSNOTREG))”

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

如有任何建议,将不胜感激

  • 下一步
    • 给一个年轻的老牧师打电话

我发现了问题所在。如果有更多关于这个库的文档就好了

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

TSScheduler scheduler = testset.StartExecution("<RemoteServerName>"); // Contain server name unless local
// scheduler.RunAllLocally = true; // Included when ran local
scheduler.Run(); 
TSScheduler scheduler=testset.StartExecution(“”;//包含服务器名称,除非是本地的
//scheduler.RunAllLocally=true;//在本地运行时包括
scheduler.Run();
变成这样:

TSScheduler scheduler = testset.StartExecution(""); // Contain server name unless local
scheduler.TdHostName = "<test_runner_name>";
scheduler.LogEnabled = true;
scheduler.Run(testset.ID);
TSScheduler scheduler=testset.StartExecution(“”;//包含服务器名称,除非是本地的
scheduler.TdHostName=“”;
scheduler.LogEnabled=true;
Run(testset.ID);
如果您确认您的计算机上安装了所有必要的ALM加载项,这也是一个好主意。特别是“HP质量中心连接”和“HP质量中心系统测试远程代理”加载项。我重新安装了我的测试代理只是为了确定


希望这对将来的其他人有所帮助

我发现了问题所在。如果有更多关于这个库的文档就好了

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

TSScheduler scheduler = testset.StartExecution("<RemoteServerName>"); // Contain server name unless local
// scheduler.RunAllLocally = true; // Included when ran local
scheduler.Run(); 
TSScheduler scheduler=testset.StartExecution(“”;//包含服务器名称,除非是本地的
//scheduler.RunAllLocally=true;//在本地运行时包括
scheduler.Run();
变成这样:

TSScheduler scheduler = testset.StartExecution(""); // Contain server name unless local
scheduler.TdHostName = "<test_runner_name>";
scheduler.LogEnabled = true;
scheduler.Run(testset.ID);
TSScheduler scheduler=testset.StartExecution(“”;//包含服务器名称,除非是本地的
scheduler.TdHostName=“”;
scheduler.LogEnabled=true;
Run(testset.ID);
如果您确认您的计算机上安装了所有必要的ALM加载项,这也是一个好主意。特别是“HP质量中心连接”和“HP质量中心系统测试远程代理”加载项。我重新安装了我的测试代理只是为了确定

希望这对将来的其他人有所帮助

我已经在使用

TSScheduler调度器=testSet.startexecuation(“”)

我们在QC10中有一个有效的解决方案,但最近升级到QC12。正在安装位于的连接

允许我们在VS2013/C#中使用COM对象,连接到QC等,但会出现与上面代码相同的错误

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

最终,我们发现您还需要通过进入工具/客户注册来“注册您的客户”:

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

我希望这对某人有所帮助:)

我已经在使用

TSScheduler调度器=testSet.startexecuation(“”)

我们在QC10中有一个有效的解决方案,但最近升级到QC12。正在安装位于的连接

允许我们在VS2013/C#中使用COM对象,连接到QC等,但会出现与上面代码相同的错误

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

最终,我们发现您还需要通过进入工具/客户注册来“注册您的客户”:

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

我希望这对某人有所帮助:)