Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用C#和ASP.net连接HP质量中心_C#_Asp.net_Web Services_Com_Hp Quality Center - Fatal编程技术网

如何使用C#和ASP.net连接HP质量中心

如何使用C#和ASP.net连接HP质量中心,c#,asp.net,web-services,com,hp-quality-center,C#,Asp.net,Web Services,Com,Hp Quality Center,我希望使用C#和ASP.net连接HP质量中心。有人能给我推荐一种使用.net web应用程序连接它的方法吗。此外,我是否需要在托管应用程序的服务器上进行任何安装 下面是我找到的一些java代码,我想要这样的东西 //Connect to QC ITDConnection itdc= ClassFactory.createTDConnection(); System.out.println(itdc.connected()); itdc.initC

我希望使用C#和ASP.net连接HP质量中心。有人能给我推荐一种使用.net web应用程序连接它的方法吗。此外,我是否需要在托管应用程序的服务器上进行任何安装

下面是我找到的一些java代码,我想要这样的东西

//Connect to QC    
    ITDConnection itdc= ClassFactory.createTDConnection();    
    System.out.println(itdc.connected());    
    itdc.initConnectionEx("http://QC.com/qcbin");    
    System.out.println(itdc.connected());    
    itdc.connectProjectEx("DomainA", "ProjectB", "UserID", "Password");    

嗯,有两种方法。它们使用:

  • OTA客户端(开放测试体系结构)

    这是从第三方应用程序连接HP QC/ALM的传统方式。这个API已经使用了很多年,在与QC的交互方面已经相当成熟。然而,我相信这个API是基于COM的,并且很快就会过时。因此,我不建议使用它来构建广泛的定制QC线束

  • RESTAPI

    HP在最近的几个版本中已经开始为QC提供RESTAPI。最新版本的QC(现在称为HP ALM 11.5)中的REST API似乎相当成熟。我想说,这项技术的主要优势在于速度和更好的互操作性,因为我相信REST正在迅速成为公开远程服务的主流标准之一

  • 这是你选择的一些背景资料。但是,要给出C#中的一些代码示例,请参见以下代码片段

    using TDAPIOLELib; // This is the QTP interop library 
    private TDConnection qcConnection;
    
    private string Connect()
    {
        string status;
        status = "Initialising";
    
            qcConnection.InitConnectionEx("<QC URL>");
            qcConnection.ConnectProjectEx("<QC Domain>", "<QC Project>", "<LoginUserId>", "<UserPassword>");
            if (qcConnection.ProjectConnected)
            {
                status = "Connected";
            }
        return status;
    }
    public void GetTestsInTestSet(string testFolder, string testSetName)
    {
        TDAPIOLELib.List tsTestList = new TDAPIOLELib.List();
        try
        {
            if (qcConnection.ProjectConnected)
            {
                TestSetFactory tSetFact = (TestSetFactory)qcConnection.TestSetFactory;
                TestSetTreeManager tsTreeMgr = (TestSetTreeManager)qcConnection.TestSetTreeManager;
    
                TestSetFolder tsFolder = (TestSetFolder)tsTreeMgr.get_NodeByPath(testFolder);
    
                List tsList = tsFolder.FindTestSets(testSetName, false, null);
    
    
                foreach (TestSet testSet in tsList)
                {
                    TestSetFolder TSFolder = (TestSetFolder)testSet.TestSetFolder;
                    TSTestFactory TSTestFactory = (TSTestFactory)testSet.TSTestFactory;
                    tsTestList = TSTestFactory.NewList("");
                }
    
                foreach (TSTest test in tsTestList)
                {
    
                    System.Diagnostics.Debug.Writeln(test[qcFrameworkTestIDFieldName]);
                }
    
            }
            else
            {
                Console.WriteLine("QC connection failed");
            }
        }
        catch (Exception e)
        {
            throw e;
        }    
    }
    
    使用TDAPIOLELib;//这是QTP互操作库
    专用TDConnection和qcConnection;
    私有字符串连接()
    {
    字符串状态;
    status=“初始化”;
    qcConnection.InitConnectionEx(“”);
    qcConnection.ConnectProjectEx(“,”,“,”,“,”);
    if(qcConnection.ProjectConnected)
    {
    status=“已连接”;
    }
    返回状态;
    }
    public void GetTestsInTestSet(字符串testFolder,字符串testSetName)
    {
    TDAPIOLELib.List tsTestList=新的TDAPIOLELib.List();
    尝试
    {
    if(qcConnection.ProjectConnected)
    {
    TestSetFactory tSetFact=(TestSetFactory)qcConnection.TestSetFactory;
    TestSetTreeManager tsTreeMgr=(TestSetTreeManager)qcConnection.TestSetTreeManager;
    TestSetFolder tsFolder=(TestSetFolder)tsTreeMgr.get_NodeByPath(testFolder);
    List-tsList=tsFolder.FindTestSets(testSetName,false,null);
    foreach(tsList中的TestSet TestSet)
    {
    TestSetFolder TSFolder=(TestSetFolder)testSet.TestSetFolder;
    TSTestFactory TSTestFactory=(TSTestFactory)testSet.TSTestFactory;
    tsTestList=TSTestFactory.NewList(“”);
    }
    foreach(tsTestList中的TSTest测试)
    {
    System.Diagnostics.Debug.Writeln(测试[qcFrameworkTestIDFieldName]);
    }
    }
    其他的
    {
    Console.WriteLine(“QC连接失败”);
    }
    }
    捕获(例外e)
    {
    投掷e;
    }    
    }
    
    注:

  • 要获取QC互操作库,请查找OTAClient.dll。一旦您首次成功地从您的机器访问QC,这将下载到您的本地机器上
  • HP ALM 11.50-REST API参考:
  • HP ALM 11.50-OTA API参考:
  • 一般来说,我发现在C#中使用OTA API相当乏味。即使从参考指南中,有时也很难确定某些对象类型和类型转换。使用VB.Net可能会使它更容易一些,因为我相信您不需要做太多的铸造工作。但是,如果我必须重做一遍,我肯定会首先考虑REST API。 祝你一切顺利


    S

    在HP ALM 11.50-REST API Ref中没有执行测试集的实现。
    所以要执行测试,您需要使用OTA API。

    我们需要更多信息。更多信息!你到底想如何“连接”他们?只是运行报告/查看bug?更多较少的客户端运行的是web浏览器,还是胖客户端?你们有哪个版本的QC?等等?应用程序“HP质量中心”是否提供了一些SDK和api来实现这一点?嗨,Paul,目前我没有QC的版本详细信息。我很快就会知道,因为现在我们正在尝试连接到QC以运行一些测试用例,我们正在检查是否可以通过传递凭据将.net应用程序连接到QC。我在网上看到了这些信息,所以我们正在寻找类似以下代码(请注意代码是java的)ITDConnection itdc=ClassFactory.createTDConnection();System.out.println(itdc.connected());initConnectionEx(“,“ProjectB”,“UserID”,“Password”);