如何使用C#和ASP.net连接HP Quality Center

时间:2013-05-21 22:53:37

标签: 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.initConnectionEx("http://QC.com/qcbin");    
    System.out.println(itdc.connected());    
    itdc.connectProjectEx("DomainA", "ProjectB", "UserID", "Password");    

2 个答案:

答案 0 :(得分:5)

嗯,有两种方法可以做到这一点。这些是使用:

  1. OTA客户端(开放测试架构)

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

  2. REST API

    惠普已经开始在最近几个版本中为QC提供REST API。最新版本的QC(现在称为HP ALM 11.5)中的REST API似乎非常成熟。我说主要优点是速度和更好的互操作性,因为我认为REST正迅速成为暴露远程服务的主流标准之一。

  3. 这是您选择的一些背景知识。但是,要提供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;
        }    
    }
    

    注意:

    1. 要获取QC互操作库,请查找OTAClient.dll。首次成功从您的计算机访问QC后,将其下载到本地计算机上。
    2. HP ALM 11.50 - REST API参考:http://support.openview.hp.com/selfsolve/document/KM1413621/binary/ALM11.50_REST_API_Ref.html?searchIdentifier=4a65d813%3a140830b7b59%3a6cfa&resultType=document
    3. HP ALM 11.50 - OTA API参考:http://support.openview.hp.com/selfsolve/document/KM1413612/binary/ALM11.50_OpenTest_Architect_API_Ref.html?searchIdentifier=4a65d813%3a140830b7b59%3a6e9b&resultType=document
    4. 一般来说,我发现在C#中使用OTA API非常繁琐。即使从参考指南中,也很难在某些时候计算出一些对象类型和铸造。使用VB.Net可能会让它变得更容易,因为我相信你不需要做那么多的投射。但是,如果我不得不重新做一遍,我肯定会首先考虑REST API。
    5. 一切顺利。

      取值

答案 1 :(得分:0)

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