Status von Testsuitehierarchien

Das Problem

Es ist üblich, Testsuiten in einer hierarchischen Struktur unterzubringen, welche die verschiedene Testbereiche und Testzwecke abbildet. In einigen Fällen werden Sie zum Beispiel die gesamte Anzahl von bestandenen, fehlgeschlagenen und nicht ausgeführten Tests wissen möchten, um den Teststatus und somit die Qualität eines Testbereichs oder Testzwecks zu wissen.

Die Lösung

Verwenden Sie die Data-Mart Ansicht RV_ExecutionPlanStatusRollup um einen Bericht zu erstellen, der die Anzahl bestandener, fehlgeschlagener und nicht ausgeführter Tests für einen bestimmten Testsuite-Ordner auflistet, gruppiert nach Build.

SELECT BuildName, PassedCount, FailedCount, NotExecutedCount
FROM RV_ExecutionPlanStatusRollup
WHERE ExecutionFolderID = ${executionPlanID|43|Execution Plan ID}
Die Abfrage macht Folgendes:
  • Wählt BuildName und die Status-Anzahlen von der Ansicht RV_ExecutionPlanStatusRollup aus.
  • Bestimmt den Order der höchsten Ebene, von dem Sie den Status (ExecutionFolderID) haben wollen.
Das Ergebnis der SQL-Abfrage zeigt den Status der Testläufe in allen Testsuiten des ausgewählten Ordners an, aggregiert pro Build.
BuildName PassedCount FailedCount NotExecutedCount
351 0 0 2
352 15 7 1
Sollten Sie an detaillierteren Informationen interessiert sein, beispielsweise an den Status-Anzahlen für jede Testsuite innerhalb einer ausgewählten Hierarchie, können Sie die Data-Mart Ansicht RV_ExecutionPlanStatusPerBuild verwenden:
SELECT eps.BuildName, eps.ExecutionPlanID, SUM(eps.PassedCount) PassedCount,
  SUM(eps.FailedCount) FailedCount, SUM(eps.NotExecutedCount) NotExecutedCount
FROM RV_ExecutionPlanStatusPerBuild eps
INNER JOIN TM_ExecTreePaths etp ON eps.ExecutionPlanID = etp.NodeID_pk_fk
WHERE etp.ParentNodeID_pk_fk = ${execFolderID|44|Execution Folder ID}
GROUP BY eps.ExecutionPlanID, eps.BuildOrderNumber, eps.BuildName
ORDER BY eps.BuildOrderNumber, eps.ExecutionPlanID
Die Abfrage macht Folgendes:
  • Verwendet die Ansicht RV_ExecutionPlanStatusPerBuild, um auf Testsuite-bezogenen Daten zuzugreifen (ExecutionPlanID und ExecutionPlanName). Die zuvor verwendete Ansicht RV_ExecutionPlanStatusRollup enthält voraggregierte Daten (zusammengezählte Daten), die zu diesem Zweck nicht geeignet sind, da Sie nicht nur die Ergebnisse für Testsuiten liefert, sondern auch für Ordner-Knoten.
  • Wählt alle Knoten eines bestimmten Ordners mittels JOIN der TM_ExecTreePath Tabelle aus, um die Hierarchieinformationen zu sammeln.
  • Bestimmt den Ordner der höchsten Ebene mit ExecutionFolderID. Da die Tabelle TM_ExecutionTreePaths auch eine Selbstreferenz für jede Testsuite enthält, können Sie diese Abfrage auch für ParentNodeID_pk_fk mit einer Testsuite-ID ausführen, was die Reihen einer bestimmten Testsuite zurückgeben würde.
  • Fügt ORDER BY BuildOrderNumber und ExecutionPlanID hinzu, um ein sauber geordnetes Ergebnis zu erhalten, beginnend mit dem ältesten Build und dessen Testsuiten.
Das Ergebnis der SQL-Abfrage liefert den Status der Testläufe in allen Testsuiten des ausgewählten Ordners.
BuildName ExecutionPlanID PassedCount FailedCount NotExecutedCount
351 2307 0 0 2
352 2184 11 2 0
352 2185 0 3 0
352 2186 2 1 0
352 2187 1 0 0
352 2191 0 1 0
352 2307 1 0 1