La qualité de Centre de OTA API: Retour juste le premier niveau de l'enfant TestSets dans un TestSetFolder

Le HP QC OTA API semble fournir deux méthodes pour renvoyer la liste des TestSets dans un certain TestSetFolder. Cependant, les deux méthodes sont récursives et retour tous les tests de jeux pour chaque sous-dossier plus bas dans la hiérarchie. Je veux être en mesure de revenir juste d'enfant immédiat des jeux de test d'un jeu de test de dossier. Je me rends compte de ce qui peut être réalisé à l'aide d'une très simple requête SQL à l'aide de la Commande de l'objet, mais ce n'est pas une option dans mon scénario en raison de la QC autorisations requises.

Considérer le code c# suivant l'exemple ci-dessous.
Il utilise la norme QC projet d'exemple pour illustrer le problème.
En utilisant le chemin du dossier "Root\Mercure Tours Site Web\Fonctionnalités de l'INTERFACE Et de" les 3 jeux de test sont retournés correctement dans tous les cas. Toutefois spécifier le chemin d'accès "Root\Mercure Tours Site Web") renvoie 5 des jeux de test que l'échantillon contient 2 sous-dossiers de 3 et 2 ensembles de test respectivement. Le SQL correctement ne pas retourner tout de jeux de tests dans ce cas.

//where 'tdc' is a valid TDConnection object logged in to DEFAULT.QualityCenter_Demo
//string testSetFolderPath = @"Root\Mercury Tours Web Site";                          //0 test sets (Method 1 and 2 return 5)
string testSetFolderPath = @"Root\Mercury Tours Web Site\Functionality And UI";     //3 test sets

//Method 1: TestSetFolder.FindTestSets()
var testSetTreeManager = (TestSetTreeManager)tdc.TestSetTreeManager;
var testSetFolder = (TestSetFolder)testSetTreeManager.get_NodeByPath(testSetFolderPath);
var testSets = testSetFolder.FindTestSets("", false, "");
Console.WriteLine("Folder {0} contains {1} testsets", testSetFolderPath, testSets.Count);

//Method 2: NewList() with filter
var testSetFactory = (TestSetFactory)tdc.TestSetFactory;
var filter = (TDFilter)testSetFactory.Filter;
filter["CY_FOLDER_ID"] = "^" + testSetFolderPath + "^";
testSets = (List)testSetFactory.NewList(filter.Text);
Console.WriteLine("Folder {0} contains {1} testsets", testSetFolderPath, testSets.Count);

//Method 3: SQL Query using Command object
var command = tdc.Command;
command.CommandText = "select CY_CYCLE as TestSet from CYCLE where CY_FOLDER_ID = " + testSetFolder.NodeID;
Recordset records = command.Execute();
Console.WriteLine("Folder {0} contains {1} testsets", testSetFolderPath, records.RecordCount);

Il est possible d'itérer sur les ensembles de test retourné pour vérifier que le TestSetFolder chemin d'accès à la propriété correspond au dossier en cours. Cependant, il en résulte une surcharge de performance, en particulier pour les grandes QC projets et/ou sur une connexion réseau lente.

Il doit y avoir un moyen de QC pour ce faire, puisque les deux QC INTERFACE utilisateur web et QCExplorer outil de test de charge définit progressivement à mesure que vous développez les nœuds dans le jeu de test de l'arbre.

Des idées? Merci!

OriginalL'auteur Sam Warwick | 2010-11-18