Я использую Interop.TDAPIOLELib.dll для интеграции QC ALM 12 и установил QcConnector.exe по ссылке на инструмент из QC ALM 12 на моем 32-разрядном компьютере с Windows.
Я хочу получить все TestPlan с иерархией родительских папок. Но это занимает слишком много времени: 75 артефактов QC ALM (включая план тестирования и папку) занимает 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
А также хотите получить требования с иерархией папок, но это также занимает много времени.
Итак, я попытаюсь улучшить производительность с помощью thread.
Тема 1: загрузить весь план тестирования
Тема 2: Загрузить все требования
и работать параллельно, но я думаю, что параллельный запрос не поддерживается. Потому что, когда я извлекаю требования, это занимает 40 секунд (для 30 требований), но параллельное получение обоих занимает 1 минуту 15 секунд только для требований.
Пожалуйста, помогите мне узнать, как улучшить производительность.
Можно получить всю древовидную структуру плана тестирования за один вызов.
Спасибо