11.4. Beispielbericht

11.4.1. Erzeugen des Skripts
11.4.2. Eine PDF-Layout-Vorlage erzeugen

In diesem Abschnitt finden Sie einen Beispielbericht, der Testfallergebnisse abruft und sie abhängig von ihrem Status anzeigt.

11.4.1. Erzeugen des Skripts

Der folgende Code-Ausschnitt zeigt den Aufbau eines Java-Skripts mit den erforderlichen Import-Statements. Der Code zum Abrufen der Daten wird in der Methode execute implementiert. Eine detailliertere Beschreibung der Klaros-Test­management API finden Sie in de.verit.klaros.core.model.

  import de.verit.klaros.scripting.*;
  import de.verit.klaros.core.model.*;
  import java.util.*;

  public class TestScript implements KlarosScript {

    public void execute(KlarosContext context) {...
    }
  }

Der nächste Schritt besteht darin, die erforderlichen Daten abzurufen. Der folgende Code-Ausschnitt zeigt, wie eine Abfrage zum Abrufen von Testfallergebnissen erstellt werden kann.

  StringBuffer query = new StringBuffer();
  query.append("select tcr from KlarosTestCaseResult tcr");
  List<?> tcr = context.executeQuery(query.toString());

Die Testfallergebnisse werden in einem List-Objekt zurückgegeben. Diese Liste muss im Kontext zwischengespeichert werden, damit die Layout-Vorlage darauf zugreifen kann:

  context.add("results", tcr);
[Anmerkung] Anmerkung

Weitere Informationen zum Erstellen von Abfragen finden Sie unter HQL-Dokumentation.

Das List-Objekt wird im Kontext unter dem Namen results gespeichert und kann von der Layout-Vorlage über diesen Namen abgerufen werden. Falls zusätzliche Daten benötigt werden, führen Sie die entsprechenden Abfragen aus und speichern Sie die verarbeiteten Daten im Kontext unter jeweils einem anderen Namen.

11.4.2. Eine PDF-Layout-Vorlage erzeugen

Die Code-Ausschnitte in diesem Abschnitt zeigen, wie man eine Layout-Vorlage erstellt. Die offizielle Dokumentation zur verwendeten Layout-Sprache finden Sie im SeamPDF Manual. Weitere Informationen zum Objekt-Modell finden Sie unter de.verit.klaros.core.model.

Der folgende Code-Ausschnitt zeigt die Grundstruktur einer PDF-Layout-Vorlage. Im Element <p:document>-Elements ist der Inhalt des Berichts enthalten und in Kapiteln und Abschnitten gruppiert.

  <p:document xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core"
   xmlns:p="http://jboss.org/schema/seam/pdf" title="Klaros-Testmanagement Test Suite Report"
   marginMirroring="true" author="#{user.name}" creator="#{user.name}" pageSize="A4">
     ...
  </p:document>

Hier wird der immer im Kontext vorhandene Parameter de.verit.klaros.core.model.KlarosUser mittels #{user.name} verwendet, um den Author des PDF-Dokuments festzulegen.

Der nächste Code-Ausschnitt zeigt, wie die Kopf- und Fußzeilen des Berichts definiert werden können. Hier wird das aktuelle Datum und der de.verit.klaros.core.model.KlarosUser-Parameter im Kontext verwendet.

  <f:facet name="header">
    <p:font size="8">
      <p:header borderWidthBottom="0.1" borderColorBottom="black" borderWidthTop="0" alignment="center">
        <p:text value="Example report - generated on #{date} by #{user.name}"/>
      </p:header>

      <p:footer borderWidthTop="0.1" borderColorTop="black" borderWidthBottom="0" alignment="center">
        <p:text value="Page " />
        <p:pageNumber />
      </p:footer>
    </p:font>
  </f:facet>

Als nächstes wird die Titelseite für den Bericht definiert, die eine kurze Zusammenfassung des Berichts zeigt. Um dieses Beispiel kurzzuhalten, wird nur ein Fragment mit dem Namen und der E-Mail-Adresse des Benutzers angezeigt. Für das vollständige Skript siehe Abschnitt E.3, „Beispiel Layout-Vorlage“.

  <p:font style="bold" size="16">
    <p:paragraph alignment="center" spacingAfter="5">
      <p:text value="#{user.name} (#{user.email})"/>
    </p:paragraph>
  </p:font>