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

use*_*359 3 c# asp.net com web-services hp-quality-center

我希望使用C#和ASP.net连接惠普质量中心.有人可以建议我使用.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");    
Run Code Online (Sandbox Code Playgroud)

shr*_*nsp 6

嗯,有两种方法可以做到这一点.这些正在使用:

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

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

  2. REST API

    惠普已经开始在最近几个版本中为QC提供REST API.最新版本的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;
    }    
}
Run Code Online (Sandbox Code Playgroud)

笔记:

  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 = 4a65168%3A140830b7b59%3aacfa&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.

祝一切顺利.

小号