Vb.net 我正在使用Interop.TDAPIOLELib.dll进行QC ALM集成,但获取所有测试计划树结构花费了太多时间

Vb.net 我正在使用Interop.TDAPIOLELib.dll进行QC ALM集成,但获取所有测试计划树结构花费了太多时间,vb.net,interop,hp-quality-center,Vb.net,Interop,Hp Quality Center,我正在使用Interop.TDAPIOLELib.dll进行QC ALM 12集成,并在我的32位窗口机器上从QC ALM 12的工具链接安装了QcConnector.exe 我想获取具有父文件夹层次结构的所有TestPlan。但是围绕QC ALM的75工件(包括测试计划和文件夹)花费的时间太多了1分50秒 Private Sub LoadQCTree() Dim rootNode As Object = Nothing _treeManager = CType(_qcC

我正在使用Interop.TDAPIOLELib.dll进行QC ALM 12集成,并在我的32位窗口机器上从QC ALM 12的工具链接安装了QcConnector.exe

我想获取具有父文件夹层次结构的所有TestPlan。但是围绕QC ALM的75工件(包括测试计划和文件夹)花费的时间太多了1分50秒

  Private Sub LoadQCTree()

    Dim rootNode As Object = Nothing

    _treeManager = CType(_qcConnection.TreeManager, TreeManager)

    Dim rootList As TDAPIOLELib.List = _treeManager.RootList

    Dim rNode = rootList.Item(1)

    rootNode = _treeManager.TreeRoot(rNode)

    Dim FolderList As List = rootNode.NewList()

    'Read sub node hierarchy...

    RecurseTree(CType(FolderList, List))

    ReadChildTestCases(rootNode)

 End Sub


  Private Sub RecurseTree(ByVal SubNodes As TDAPIOLELib.List)

    For Each itm As SysTreeNode In SubNodes
        Dim Description = CStr(itm.Description).Trim
        If Not Description = "" Then Description = ConvertPlain(Description).Trim
        AddNodeEntry(itm.Name, CStr(itm.NodeID), CStr(itm.Father.NodeID), "Folder", Description, Now, Now, "TestCase", "folder")

        Dim children = itm.NewList
        RecurseTree(CType(children, List))
        ReadChildTestCases(itm)

    Next

  End Sub

  Private Sub ReadChildTestCases(ByVal itm As SysTreeNode)

    Dim testFilter As TDFilter = CType(_testFactory.Filter, TDFilter)

    testFilter.Filter("TS_SUBJECT") = Chr(34) & itm.Path & Chr(34)


    Dim TestList As List = _testFactory.NewList(testFilter.Text)

    For Each test As Test In TestList
        Try
            Dim description As String = Convert.ToString(test.Field("TS_DESCRIPTION")).Trim
            If Not description = "" Then description = ConvertPlain(description).Trim
            Dim modifiedOn As Date = CDate(test.Field("TS_VTS"))
            Dim CreationDate As Date = CDate(test.Field("TS_CREATION_DATE"))
            modifiedOn = Date.SpecifyKind(modifiedOn, DateTimeKind.Local)
            CreationDate = Date.SpecifyKind(CreationDate, DateTimeKind.Local)

            Dim BaseId = test.Field("TS_BASE_TEST_ID")
            Dim type = test.Field("TS_TYPE")
            AddNodeEntry(test.Name, CStr(test.ID), CStr(itm.NodeID), "File", description, modifiedOn, CreationDate, "TestCase", type)
        Catch ex As Exception
            'Do nothing..
            'Current node will skip from the tree hierarchy

        End Try
    Next
  End Sub
而且还希望通过文件夹层次结构获取需求,但这也需要花费很多时间

所以,我将尝试使用线程来提高性能

线程1:加载所有测试计划

线程2:加载所有要求

和并行运行,但我认为不支持并行请求。因为当我获取需求时,需要40秒(对于30个需求)但仅获取两个并行需求1分钟15秒

请帮我找出提高绩效的方法

可以在一次调用中获得所有测试计划树结构


谢谢

如果您想要项目的所有需求和测试,那么将连接对象的工厂与NewList(“”)一起使用会更快。类似这样的代码(这只是伪代码):


不要遍历层次结构,获取每个文件夹的需求或测试。

您只能从非常了解该产品的专家那里获得帮助。你在这里找到一个的几率是零,特别是在这个问题上的当前标签。使用Hewlett-Packard支持论坛查找一个。感谢@TheArtTrooper它对我非常有用。使用此文件夹,我能够获得所有要求。
RequirementFactory factory = connection.RequirementFactory;
List reqs = factory.NewList(""); /* this is all a project's requirements */