Berichte können durch ein Diagramm mit einer grafischen Darstellung der abgerufenen Daten erweitert werden. Die Daten für diese Diagramme werden ebenfalls durch das Berichts-Skript aufbereitet und im Kontext gespeichert. Die Layout-Vorlage übergibt die Daten an die Diagrammkomponente von SeamPDF. In diesem Abschnitt wird gezeigt, wie ein Tortendiagramm wie in Abbildung 11.7, „Ein Beispiel für ein Tortendiagramm“ erstellt wird.
Das Berichts-Skript wird nicht nur zum Abrufen der Daten verwendet, sondern auch zum Aufbereiten der Daten für die
Layout-Vorlage.
Der folgende Code-Ausschnitt zeigt, wie die Daten für ein Tortendiagramm aufbereitet werden.
Für jeden möglichen Ergebnistyp wird ein leeres List
-Objekt erstellt.
Dann werden die zuvor abgerufenen
de.verit.klaros.core.model.KlarosTestCaseResult-Objekte
je nach ihrem Ergebnistyp zu einer der Listen hinzugefügt.
Auf diese Listen kann dann später aus dem Kontext heraus über den entsprechenden Schlüssel zugegriffen werden.
List<KlarosTestCaseResult> error = new ArrayList<KlarosTestCaseResult>(); List<KlarosTestCaseResult> failure = new ArrayList<KlarosTestCaseResult>(); List<KlarosTestCaseResult> success = new ArrayList<KlarosTestCaseResult>(); // Iterate over the results and retrieve the status Iterator<KlarosTestCaseResult> iter = (Iterator<KlarosTestCaseResult>) tcr.iterator(); while (iter.hasNext()) { KlarosTestCaseResult result = iter.next(); if (result.isError()) error.add(result); else if (result.isFailure()) failure.add(result); else if (result.isPassed()) success.add(result); } context.add("error", error); context.add("failure", failure); context.add("success", success);
Der folgende Code-Ausschnitt zeigt das Diagramm unter Verwendung der Daten, die durch das Berichts-Skript im vorigen Abschnitt vorbereitet wurden.
<p:paragraph horizontalAlignment="center"> <p:piechart title="Test Results" direction="anticlockwise" circular="true" startAngle="30" labelGap="0.1" labelLinkPaint="#000000" plotBackgroundPaint="#ffffff" labelBackgroundPaint="#ffffff" is3D="true"> <p:series key="results"> <p:data key="Error [#{error.size}]" value="#{error.size}" sectionPaint="#FF0A0A" /> <p:data key="Success [#{success.size}]" value="#{success.size}" sectionPaint="#33CC00"/> <p:data key="Failure [#{failure.size}]" value="#{failure.size}" sectionPaint="#FFCC00"/> </p:series> </p:piechart> </p:paragraph>
Das Element piechart
definiert die Darstellung und den Inhalt des Diagramms.
Für ein Tortendiagramm ist das Element series
erforderlich.
Die Daten werden aus den Listen abgerufen, die zuvor vom Skript im Kontext gespeichert wurden.
<p:data key="Error [#{error.size}]" value="#{error.size}" sectionPaint="#FF0A0A" />
Dieser Code-Ausschnitt ruft die Liste mit den Ergebnissen aus dem Kontext ab und ruft seine
size()
Methode auf, um die Anzahl der Testfälle zu bestimmen.
Das Tortendiagramm wird dann für die drei Datenabschnitte gerendert, wie in
Abbildung 11.7, „Ein Beispiel für ein Tortendiagramm“ zu sehen ist.
![]() |
Anmerkung |
---|---|
Detaillierte Informationen zu den verschiedenen Diagrammtypen finden Sie in der SeamPDF-Dokumentation. |
Dieser Abschnitt zeigt, wie ein Bild in einen Bericht aufgenommen werden kann. Um für die Layout-Vorlage zugänglich zu sein, muss die Bilddatei an einem von zwei möglichen Orten gespeichert werden:
.klaros/resources
Wenn das Bild in einer .jar-Datei gespeichert wird, kann mit dem folgenden Code-Ausschnitt auf das Bild zugegriffen werden.
<p:image value="images/image.png"/>
Das Attribut value
definiert den Bilddateinamen und den Ordner, in dem sich
das Bild innerhalb der jar-Datei befindet.
Wenn ein Bild über eine URL bereitgestellt wird, kann darauf mit dem folgenden Code-Ausschnitt zugegriffen werden.
<p:html> <img src="http://www.verit.de/images/logo-klaros-160.png" /> </p:html>
Das Attribut src
definiert die URL der Bild-Datei.
Die in diesem Abschnitt vorgestellten Code-Ausschnitte zeigen, wie man eine Layout-Vorlage für Klaros-Testmanagement erstellt. Detaillierte Informationen finden Sie im SeamExcel Handbuch. Weitere Informationen über das Klaros-Testmanagement Objektmodell sind hier zu finden de.verit.klaros.core.model.
Das folgende Code-Segment zeigt den Aufbau einer Excel-Layout-Vorlage. as Element <e:workbook> enthält alle weiteren Berichtsdetails.
<e:workbook xmlns:e="http://jboss.org/schema/seam/excel" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets"> <e:worksheet name="#{user.name}" value="#{testCases}" var="testCase">... </e:worksheet> </e:workbook>
Beachten Sie die Verwendung der de.verit.klaros.core.model.KlarosUser
und der de.verit.klaros.core.model.KlarosTestCase
Parameter aus dem Kontext: #{user.name}
und #{testCases}
.
Ein Arbeitsblatt verwendet eine Liste von Objekten, um die Zeilen und Spalten der Excel-Tabelle zu erzeugen.
Diese Liste muss an das Attribut value
des worksheet
-Elements
übergeben werden.
Im Attribut var
kann der Name des aktuellen Objekts definiert werden.
Zum Beispiel: Um den Testfallnamen des aktuellen Objekts innerhalb des Arbeitsblattes auszugeben,
muss die Anweisung #{testCase.name}
verwendet werden.
Es ist ebenfalls möglich, mehrere worksheet
-Elemente in einer Vorlage zu verwenden.
In diesem Beispiel verwenden wir aber nur ein einziges Arbeitsblatt mit dem Benutzernamen als Arbeitsblattname.