Protokollerstellung und -anpassung in TestStand

Überblick

Ein häufige Anforderung in automatisierten Testsystemen besteht darin, ein vollständiges Protokoll zu erzeugen, das alle Ergebnisinformationen zur Beantwortung der Fragen „Was wird von der Sequenz getestet?“ und „Welche Ergebnisse wurden von jedem Prüfling erreicht?“ umfasst.

Dieses Dokument enthält Informationen zu TestStand-Protokollen, einschließlich Konfiguration verschiedener Protokollformate, Aufnahme zusätzlicher Daten in das Protokoll und Anpassung der Protokolle.

Inhalt

So erstellt TestStand Protokolle

Bevor Sie sich mit den Optionen für die Anpassung von TestStand-Protokollen vertraut machen, müssen Sie zunächst wissen, wie der TestStand-Protokollerstellungsprozess funktioniert.

TestStand wendet einen zweistufigen Ansatz zum Erstellen von Testprotokollen an:

  1. Ergebnissammlung: Während der Testausführung erfasst TestStand Ergebnisdaten. Diese konsolidierten Ergebnisse werden für die gesamte Ergebnisverarbeitung verwendet, einschließlich der Protokollerstellung und der Datenbankprotokollierung.
  2. Protokollerstellung: Der TestStand-Protokollgenerator nutzt die im Ergebnissammlungsprozess erfassten Daten zum Erstellen der Protokolldatei.

Ein Diagramm dieses Prozesses ist in der folgenden Abbildung dargestellt:

TestStand erfasst Testergebnisse in der ResultList-Variablen. Diese wird vom Protokollgenerator zum Erstellen eines lesbaren Testprotokolls herangezogen.


Ergebniserfassung

Während TestStand Sequenzen ausführt, werden Schrittergebnisse und zusätzliche Informationen erfasst, die in das Protokoll aufgenommen werden. Die Ergebniserfassung wird direkt von der TestStand-Engine implementiert und erfolgt unabhängig von der Ergebnisverarbeitung, wie z. B. Protokollerstellung oder Datenbankprotokollierung.


Die Eigenschaft „Locals.ResultList“

Sequenzen arbeiten mit Locals.ResultList. Diese Eigenschaft wird automatisch zur Speicherung der Ergebnisdaten in allen neuen Sequenzen erstellt. TestStand füllt die ResultList-Eigenschaft während der Sequenzausführung aus und speichert sie im Arbeitsspeicher (RAM).

Die lokale ResultList-Variable ist anfänglich ein leeres Array von Containern. Nach der Ausführung jedes Schritts hängt TestStand ein neues Containerelement an das Ende des Arrays an, um die Ergebnisse des ausgeführten Schritts zu speichern. Dabei werden die Daten mit zwei Quellen gefüllt:

  • Benutzerdefinierte Ergebniseigenschaften: Werden aus dem Step.Result-Container des ausgeführten Schritts abgerufen.
  • Standardergebniseigenschaften: Werden von der TestStand-Engine abgerufen.


Benutzerdefinierte Ergebniseigenschaften

Einige Daten in der ResultList werden aus den Schritteigenschaften abgerufen.  Standardmäßig werden nur Eigenschaften im Ergebniscontainer der Schritteigenschaften in die Ergebniserfassung aufgenommen. Zwei wichtige Elemente im Schrittergebniscontainer sind beispielsweise:

  • Result.Status: Ein Zeichenfolgenelement, das das Testergebnis für den Schritt angibt.
  • Result.Error: Ein Container, in dem Fehlerinformationen zum Schritt gespeichert werden.

Die Schritteigenschaften können je nach Schritttyp variieren. Viele Schritteigenschaften sind nur für bestimmte Schritttypen vorhanden. Beispielsweise gilt die Eigenschaft Step.Result.Numeric speziell für den Schritttyp „Numeric Limit Test“.


Standardergebniseigenschaften

TestStand kopiert nicht nur die Schritteigenschaften in die ResultList, sondern fügt auch jedem Schritt noch einen Satz von Standardergebniseigenschaften hinzu. Die TestStand-Engine fügt diese Ergebnisse als Untereigenschaften der Step.Result.TS-Eigenschaft hinzu.  Diese Eigenschaften umfassen die Ermittlung von Informationen zum Schritt, wie z. B. den Schrittnamen, den Typ und die Zeitinformationen.

Das folgende Diagramm zeigt, wie die ResultList mit Schrittergebniseigenschaften und Standardergebniseigenschaften gefüllt wird.

Ergebnisdaten werden aus benutzerdefinierten Ergebniseigenschaften generiert, die vom Schritttyp abhängen, sowie aus Standardergebniseigenschaften, die für alle Schritte gleich sind.

 

Konfigurieren der Ergebniserfassung

Einbeziehen zusätzlicher Eigenschaften in die Ergebniserfassung

Mit der Execution.AddExtraResult-Methode können Sie der ResultList bestimmte Schritteigenschaften hinzufügen. Mit dieser Methode können Sie eine Eigenschaftssuchzeichenfolge angeben (z. B. „Step.myStepData“) und diese Eigenschaft in die Ergebnisliste für alle Schritte in der Ausführung aufnehmen, die über die Eigenschaft verfügen.  Außerdem können Sie mit dieser Methode den Namen angeben, der für die Eigenschaft in der ResultList verwendet werden soll.

Beispielsweise ruft das Prozessmodell die Execution.AddExtraResult-Methode auf, um die Werte Step.Limits und Step.Comp in die ResultList aufzunehmen. Da sich diese Eigenschaften nicht im Step.Result-Container befinden, werden sie standardmäßig nicht erfasst. Aufgrund dieses Aufrufs werden diese Eigenschaften der ResultList für alle Schritte in der Ausführung hinzugefügt, die diese Eigenschaften enthalten.

Verwenden Sie AddExtraResult, um der Ergebnisliste zusätzliche Schritteigenschaften hinzuzufügen.

 

Weitere Informationen zu anderen Protokolleigenschaften finden Sie im Thema Custom Result Properties (Benutzerdefinierte Ergebniseigenschaften) in der TestStand-Hilfe.


Konfigurieren des Zeitpunkts der Ergebniserfassung

Die TestStand-Ergebniserfassung erfolgt unabhängig davon, ob Sie ein Protokoll erstellen oder Daten in einer Datenbank protokollieren.  In einigen Fällen möchten Sie möglicherweise die Ergebniserfassung für bestimmte Schritte oder Sequenzen deaktivieren, wenn die Ergebnisse nicht protokolliert werden müssen.  Mit den folgenden Einstellungen können Sie steuern, welche Ergebnisse protokolliert werden:

  • Disable result recording for all sequences (Ergebnisaufzeichnung für alle Sequenzen deaktivieren): Diese Einstellung befindet sich auf der Registerkarte „Execution“ (Ausführung) der Stationsoptionen und deaktiviert die gesamte Ergebniserfassung.  Verwenden Sie diese Einstellung, wenn Sie keine Daten mit der TestStand-Ergebnisverarbeitung protokollieren.
  • Disable result recording for all steps (Ergebnisaufzeichnung für alle Schritte deaktivieren): Diese Einstellung befindet sich in den Sequenzeigenschaften und deaktiviert die Ergebnisaufzeichnung für eine bestimmte Sequenz.
  • Step Result Recording Option (Ergebnisaufzeichnung stoppen): Mit dieser Option in den Ausführungsoptionen im Bereich für die Schritteigenschaften können Sie die Ergebnisaufzeichnung für einen bestimmten Schritt deaktivieren.  Standardmäßig überschreibt die obige Sequenzeinstellung diese Einstellung. Sie können jedoch Enabled (Override Sequence Setting) (Aktiviert (Sequenzeinstellung überschreiben)) auswählen, um Ergebnisse für einen Schritt innerhalb einer Sequenz mit deaktivierter Ergebnisaufzeichnung zu protokollieren.

Wenn die Leistung des Testsystems oder die Speicherauslastung des Systems ein Problem darstellt, sollten Sie die Ergebnisaufzeichnung für häufig ausgeführte Schritte deaktivieren, um eine unnötige Speicherung von Ergebnissen zu vermeiden.

 

Protokollerstellung

Im Gegensatz zum Ergebniserfassungsprozess, der zur TestStand-Engine gehört, wird der Protokollgenerator von den TestStand-Prozessmodellen über das Plug-in zur Protokollerstellung implementiert. Ausführliche Informationen zur Implementierung des Protokollgenerators finden Sie im Artikel Report Generation Explained (Erläuterung der Protokollerstellung).

Der Protokollgenerator verwendet zur Protokollerstellung die Ergebnisdaten in der vom Ergebniserfassungsprozess generierten ResultList-Variablen (weitere Informationen finden Sie im Abschnitt „Ergebniserfassung“ dieses Dokuments).  Dieser Abschnitt enthält einen Überblick über den Standardprotokollgenerator in TestStand.


Kennzeichnen von Daten, die in das Protokoll aufgenommen werden sollen

Der Protokollgenerator verwendet die Eigenschafts-Flags der erfassten Ergebniseigenschaften in der ResultList, um zu bestimmen, ob diese in das Protokoll aufgenommen werden sollen. Mit Eigenschafts-Flags können Sie das Verhalten von PropertyObjects konfigurieren, einschließlich der Art und Weise, wie sie in das Testprotokoll aufgenommen werden.

Die Flags eines PropertyObject können auf zwei Arten angezeigt und konfiguriert werden:

  1. Über den Sequenzeditor: Klicken Sie mit der rechten Maustaste auf eine Eigenschaft, und wählen Sie dann Advanced » Edit Flags (Erweitert > Flags bearbeiten) aus, um das Dialogfeld „Edit Flags“ (Flags bearbeiten) anzuzeigen.  Das Feld „New Flags“ (Neue Flags) zeigt die aktuelle Summe aller ausgewählten Flags an.


Konfigurieren von PropertyObject-Flags im Dialogfeld „Edit Flags“ (Flags bearbeiten)

  1. Über die TestStand-API: Mit den Methoden PropertyObject.GetFlags und PropertyObject.SetFlags können Sie auf den Flag-Status zugreifen bzw. den Flag-Status festlegen.

Jedes Flag hat einen eindeutigen Wert, und der aktuelle Flag-Status einer Eigenschaft ist die Summe aller Flag-Werte.  Beispiel: Eine Eigenschaft mit den Flags PropFlags_IsLimit–(Wert: 0x1000) und PropFlags_IncludeInReport–(Wert: 0x2000) hat einen Flag-Wert von 0x3000. Weitere Informationen zu den einzelnen Flags finden Sie im Hilfethema zu PropertyFlags-Konstanten.

Mit den folgenden Flags bestimmt der Protokollgenerator, ob erfasste Ergebnisse zum Protokoll hinzugefügt werden sollen.  Weitere Informationen finden Sie unter Property Flags That Affect Reports (Eigenschafts-Flags, die sich auf Protokolle auswirken).

  • Das Flag PropFlags_IncludeInReport gibt an, dass die Eigenschaft immer in das Protokoll aufgenommen wird.
  • Das Flag PropFlags_IsLimit oder PropFlags_IsMeasurementValue gibt an, dass Daten basierend auf den aktuellen Protokolloptionen aufgenommen werden sollen.


TestStand-Protokollformate

TestStand bietet viele Protokollformate mit jeweils eigenen Vor- und Nachteilen.  Der Protokollgenerator ruft formatspezifische Sequenzdateien auf, um den Protokolltext zu erstellen (z. B. ReportGen_ATML.seq). Weitere Informationen zu den einzelnen Protokollformaten finden Sie in der folgenden Tabelle.

Protokollformat Lesbarkeit Dateigröße Leistung Analyse1 Anpassung
ASCII (.txt)
Einfaches Textprotokollformat
Einfacher Text Sehr klein Extrem schnell Moderat – Erfordert einen benutzerdefinierten Parser, aber begrenzte Formatierungsinformationen
HTML (.html)
Rich-Text-Protokollformat
Rich Text Mittel
XML (.xml)
Nur-Daten-Dateiformat mit XSL-Stylesheet zum Generieren von Rich Text
Rich Text Einfach – Verwendet ein Standard-XML-Schema, das mithilfe einer API für XML einfach analysiert werden kann Moderat – Verwenden Sie Stylesheets, um die Formatierung ohne Änderungen des Prozessmodells anzupassen
ATML (.xml) – Automated Test Markup Language Rich Text Mittel Schnell Einfach – Verwendet ein Standard-XML-Schema, das mithilfe einer API für XML einfach analysiert werden kann Moderat – Verwenden Sie Stylesheets, um die Formatierung ohne Änderungen des Prozessmodells anzupassen

1 Sie können Protokolldateien für die automatisierte Protokollanalyse verwenden, insbesondere XML- und ATML-Protokolldateien. Die Verwendung von Datenbanken für die automatisierte Analyse ist jedoch in der Regel effizienter.  Im Hilfethema zur Datenprotokollierung finden Sie weitere Informationen zu TestStand-Komponenten für die Protokollierung in einer Datenbank.


Ab TestStand 2019 erhalten Sie auch die Möglichkeit, für jedes Berichtsformat mit Ausnahme von ASCII (.txt) einen PDF-Report zu erstellen. Weitere Informationen erhalten Sie unter Erstellung von PDF-Reports.

Ausführlichere Informationen zur Auswahl der besten Strategie zur Protokollerstellung für Ihre Anwendung finden Sie unter Choosing the Appropriate NI TestStand Report Generation Strategy (Auswahl der geeigneten Strategie für die NI TestStand-Protokollerstellung).


On-the-Fly-Protokollerstellung

Wenn Sie die Option für die On-The-Fly-Protokollerstellung auf der Registerkarte „Contents“ (Inhalt) des Dialogfelds „Report Options“ (Protokolloptionen) aktivieren, erstellen die Prozessmodelle das Protokoll schrittweise während der Ausführung, anstatt auf den Abschluss des Prüflingstests zu warten. Wenn Sie die On-the-Fly-Protokollerstellung verwenden, können Sie im Ausführungsfenster auf den Protokollbereich klicken, um das Protokoll während der Ausführung anzuzeigen. Da das Protokoll während der Testausführung aktualisiert wird, wird die Protokollansicht bei der Ausführung der Testsequenz regelmäßig mit neuen Ergebnissen aktualisiert.

Die On-the-Fly-Protokollerstellung ist in der Regel eine bessere Wahl für längere Tests, bei denen der Testdurchsatz nicht so wichtig ist wie die Speicherauslastung und das Vermeiden von Datenverlust.   

 Vorteile  Nachteile
  • Anzeige von Testergebnissen während der Testausführung
  • Kein Verlust der Protokolldatei, wenn der Test unerwartet beendet wird
  • Verhindern von Speicherzuwachs bei langen Tests1
  • Kann in einigen Fällen die Testleistung aufgrund des Overheads für die Protokollerstellung während des Tests verlangsamen2
  • Protokollgenerator lässt sich schwieriger anpassen

 


1Um Speicherzuwachs zu verhindern, ist eine zusätzliche Konfiguration erforderlich. Weitere Informationen zum Verhindern von Speicherzuwachs bei der Protokollerstellung finden Sie unter Addressing Memory Issues with Report Generation in TestStand (Arbeitsspeicherprobleme bei der Protokollerstellung in TestStand beheben).

2Dieses Problem ist in TestStand 2012 und höher gemindert, da dort Einstellungen zum Konfigurieren der Häufigkeit verfügbar sind, mit der der On-the-Fly-Protokollgenerator das Protokoll neu erstellt.  Weitere Informationen zu diesen Einstellungen finden Sie im Hilfethema zum Dialogfeld Advanced Result Processing Settings (Erweiterte Einstellungen für die Ergebnisverarbeitung).  Standardmäßig erstellt und speichert TestStand 2012 und höher das On-the-Fly-Protokoll nach dem Erfassen von 500 Schrittergebnissen, spätestens jedoch nach 1,5 Sekunden Ausführungszeit.  In TestStand 2010 SP1 und früheren Versionen wird das Protokoll nach jedem Schritt neu generiert.


Asynchrone Protokollerstellung

In TestStand 2012 und höher kann der Protokollgenerator (und andere Plug-ins zur Ergebnisverarbeitung) asynchron ausgeführt werden, um den Testdurchsatz zu verbessern.  Um diese Option zu konfigurieren, wählen Sie Configure » Result Processing (Konfigurieren > Ergebnisverarbeitung) aus, und aktivieren Sie das Kontrollkästchen Show More Options (Weitere Optionen anzeigen).  In der Spalte New Thread (Neuer Thread) wird die aktuelle Einstellung für jedes Plug-in angezeigt.

Wenn Sie diese Funktion verwenden, kann die Ausführung sofort mit dem Testen des nächsten Prüflings beginnen, während das Protokoll für den aktuellen Prüfling erstellt wird (siehe Abbildung unten).

Hinweis: Asynchrone Protokollerstellung ist nicht verfügbar, wenn Sie die On-the-Fly-Protokollerstellung verwenden.

Die asynchrone Ergebnisverarbeitung ermöglicht einen schnelleren Testdurchsatz, da der Test der nächsten Einheit sofort beginnen kann.

Anpassen von TestStand-Protokollen

Der TestStand-Protokollerstellungsprozess ist in hohem Maße anpassbar, sodass Sie das generierte Protokoll an die Anforderungen Ihrer TestStand-Anwendung anpassen können.  Gehen Sie beim Anpassen des Protokolls wie folgt vor:

  • Konfigurieren Sie die Protokolloptionen, um Anpassungen ohne Codeänderungen vorzunehmen.
  • Verwenden Sie integrierte TestStand-Komponenten, um zusätzliche Daten zu protokollieren.
  • Ändern Sie Stylesheets, und/oder überschreiben Sie Protokollerstellungs-Callbacks, um größere Änderungen am Erscheinungsbild des Protokolls zu implementieren.

Dialogfeld „Report Options“ (Protokolloptionen)

TestStand-Protokolle können ohne Codeänderungen mithilfe der Protokollerstellungsoptionen angepasst werden, die im Dialogfeld „Report Options“ (Protokolloptionen) verfügbar sind. Um in TestStand 2012 und höher auf das Dialogfeld zuzugreifen, navigieren Sie zu Configure » Result Processing (Konfigurieren > Ergebnisverarbeitung), um das Dialogfeld „Report Options“ (Protokolloptionen) zu öffnen. Wählen Sie dann das Einstellungssymbol für das Plug-in zur Protokollerstellung aus.  Wählen Sie in TestStand 2010 SP1 und früheren Versionen Configure » Report Options (Konfigurieren > Protokolloptionen) aus.

Im Dialogfeld „Report Options“ (Protokolloptionen) können Sie das Protokoll folgendermaßen konfigurieren:

  • Format des Protokolls ändern
  • Protokoll so filtern, dass es bestimmte Typen von Schrittergebnissen enthält
  • Das Erscheinungsbild des Protokolls konfigurieren
  • On-The-Fly-Protokollerstellung aktivieren


In den folgenden Abschnitten werden die einzelnen Konfigurationstypen ausführlich beschrieben.

Dialogfeld „Report Options“ (Protokolloptionen) – Registerkarte „Content“ (Inhalt)


Protokollformat

Im Dialogfeld „Report Options“ (Protokolloptionen) können Sie das Format des Protokolls auswählen.  Weitere Informationen zu den verfügbaren Protokollformaten finden Sie im Abschnitt „Protokollformat“ des Abschnitts zur Protokollerstellung dieses Dokuments.  Einige Protokolloptionen sind nur für bestimmte Protokollformate verfügbar.


ASCII- und HTML-spezifische Protokolloptionen

ASCII- und HTML-Protokolle können auf zwei Arten erstellt werden:

  • Über Sequenzen: Das Protokoll wird durch Sequenzen in der Sequenzdatei ReportGen_txt.seq oder ReportGen_html.seq erstellt. Mit dieser Methode können Sie den Protokollgenerator einfacher anpassen, indem Sie die Protokollerstellungssequenzen ändern oder überschreiben. Die Ausführung erfolgt jedoch langsamer. Diese Option wird empfohlen, wenn Sie den Protokollgenerator anpassen möchten.
  • Über eine DLL: Das Protokoll wird mit der Datei modelsupport2.dll erstellt. Diese bietet eine schnellere Leistung, ist aber schwieriger anzupassen.  Diese Option wird empfohlen, wenn Sie den Standardprotokollgenerator nur sehr wenig oder gar nicht anpassen möchten.
XML- und ATML-spezifische Protokolloptionen

Im Gegensatz zu HTML-Protokollen enthalten XML- und ATML-Protokolle keine Formatierungsinformationen. Um die Rohdaten des XML-Formats in einem lesbaren Protokoll darzustellen, wird ein XSL-Stylesheet verwendet.  Dieses Stylesheet definiert den Stil des Protokolls und ruft Daten aus der XML-Datei ab.  Mithilfe eines Stylesheets können Sie das Erscheinungsbild des Protokolls ändern, ohne die XML-Datendatei ändern zu müssen. Die folgenden Abbildungen zeigen ein Beispiel für dasselbe XML-Protokoll mit zwei verschiedenen Stylesheets, die mit TestStand bereitgestellt werden.

TestStand bietet eine Vielzahl von Stylesheets, mit denen Sie XML- und ATML-Protokolldaten auf unterschiedliche Weise anzeigen können. Diese können Sie im Dialogfeld „Report Options“ (Protokolloptionen) angeben. Sie können auch benutzerdefinierte Stylesheets für Ihre TestStand-Protokolle erstellen.  Weitere Informationen und Beispiele für die Anpassung von Stylesheets finden Sie im Artikel Customizing the Formatting and Appearance of TestStand XML and ATML Reports (Formatierung und Darstellung von XML- und ATML-Protokollen in TestStand anpassen).


ATML-Protokollabschnitt mit dem horizontalen Stylesheet
 

ATML-Protokollabschnitt mit dem Protokoll-Stylesheet


Filtern von Ergebnissen

Sie können im Dialogfeld „Report Options“ (Protokolloptionen) bestimmte Arten von Schrittergebnisinformationen filtern, z. B.:

  • Testgrenzwerte
  • Testmessungen
  • Ausführungsdauer von Codemodulen

Darüber hinaus können Sie mithilfe des Ausdrucks für die Ergebnisfilterung benutzerdefinierte Filter erstellen. TestStand wertet diesen Ausdruck für jedes Schrittergebnis aus und nimmt den Schritt in das Protokoll auf, wenn der Ausdruck „True“ ergibt. Wählen Sie mithilfe des Ringelements für die Ergebnisfilterung allgemeine Ausdrücke aus, z. B. das Ausschließen von Schritten der Ablaufsteuerung (siehe Abbildung unten).

Hinweis: Der Ausdruck für die Ergebnisfilterung ist nicht verfügbar, wenn das XML-Format oder das ATML-Format mit TestStand 2010 SP1 oder früheren Versionen verwendet wird.  In diesen Fällen können Sie Ergebnisse durch Änderung des Protokoll-Stylesheets filtern.

 

Ändern der Protokolldarstellung

Das Dialogfeld „Report Options“ (Protokolloptionen) enthält Einstellungen zum Anpassen der Darstellung des Protokolls, darunter:

  • Report Colors (Protokollfarben): Ermöglicht das Ändern der Farben, die verschiedenen Eigenschaften zugeordnet sind (nicht für ASCII-Protokolle verfügbar).
  • Default Numeric Format (Numerisches Standardformat): Konfiguriert, wie numerische Daten im Protokoll dargestellt werden.
  • Array Data Format (Array-Datenformat): Legen Sie fest, ob Arrays als Tabelle oder als Graph in das Protokoll aufgenommen oder vollständig weggelassen werden sollen.

Hinweis: TestStand-Protokolle erstellen mithilfe eines ActiveX-Steuerelements Graphen aus Array-Daten.  Wenn dieses Steuerelement beim Anzeigen des Protokolls nicht verfügbar ist, können die Daten dennoch als Tabelle angezeigt werden.


Konfigurieren von Protokolldateipfad/-name

Auf der Registerkarte Report File Pathname (Protokolldateipfad-/name) im Dialogfeld „Report Options“ (Protokolloptionen) können Sie den Namen der Protokolldatei und den Pfad konfigurieren, unter dem sie gespeichert ist.  Verwenden Sie die Datei-/Verzeichnisoptionen, um den Speicherort für das Protokoll auszuwählen. Über das Feld „UUT Report“ (Prüflingsprotokoll) können Sie dann eine Vorschau des Protokolldateinamens basierend auf den ausgewählten Optionen anzeigen.


Sie können den Namen und den Pfad der Protokolldatei weiter steuern, indem Sie im Steuerelement für Datei-/Verzeichnisoptionen die Option Specify Report File Path by Expression (Protokolldateipfad nach Ausdruck angeben) auswählen.  Mit dieser Einstellung können Sie einen Ausdruck erstellen, anhand dessen TestStand den Speicherort des Protokolls bestimmt. Dieser Ausdruck kann vordefinierte Makros enthalten, auf die im Menü des Steuerelements für den Protokolldateipfad zugegriffen werden kann.

Hinweis: Zeigen Sie beim Konfigurieren des Protokollausdrucks über das Feld „Evaluated Report File Path“ (Ausgewerteter Protokolldateipfad) und das Vorschaubild das Verhalten des aktuellen Ausdrucks an.

 

Sortieren von Protokolldateien basierend auf Prüflingsergebnissen

Sie können separate Dateispeicherorte für erfolgreiche und nicht erfolgreiche Protokolle mit dem UUTStatus-Makro im Ausdruck für den Protokolldateipfad erstellen.  Sie können dieses Makro beispielsweise in Ihrem Dateipfad zur Erstellung verschiedener Speicherorte für erfolgreiche und nicht erfolgreiche Protokolle einsetzen. Wenn dieses Makro vorhanden ist, wertet TestStand den Ausdruck für den Protokolldateipfad nach Abschluss der Testausführung erneut aus, da der Prüflingsstatus vor diesem Zeitpunkt unbekannt ist.

Konfigurieren eines anderen Protokolldateipfads/-namens basierend auf dem Prüflingsergebnis

Für Tests mit dem Stapelprozessmodell können Sie das Verhalten des Protokolldateipfads für Stapel und einzelne Prüflinge innerhalb des Stapels weiter konfigurieren.  Um auf diese Einstellungen zuzugreifen, wählen Sie im Feld „Type of Model“ (Modelltyp) die Option „Batch“ (Stapel) aus.  Mit der Option New UUT Report (Neues Prüflingsprotokoll) für jede Stapeleinstellung können Sie beispielsweise eine separate Protokolldatei für jeden Stapel erstellen.  Weitere Informationen zu allen verfügbaren Einstellungen finden Sie im Hilfethema zum Dialogfeld Report Options (Protokolloptionen).

Funktionen zum Hinzufügen benutzerdefinierter Daten zum Protokoll

In vielen Fällen erfordert eine Testanwendung, dass Sie zusätzliche Daten im Protokoll protokollieren, die über die von TestStand standardmäßig protokollierten Ergebnisse hinausgehen. Um diesem Bedarf gerecht zu werden, bietet TestStand verschiedene integrierte Funktionen, mit denen Sie benutzerdefinierte Daten einfach im Protokoll protokollieren können:

  • Parameterprotokollierung
  • Zusätzliche Ergebnisse
  • Eigenschaft „ReportText“
  • Konfigurieren von Protokolldaten für benutzerdefinierte Schritttypen

Die folgenden Abschnitte enthalten weitere Details zu diesen Funktionen.


Parameterprotokollierung

Sie können ganz einfach Parameterdaten für die Testschritte protokollieren, indem Sie das Kontrollkästchen Log (Protokollieren) in der Registerkarte Module (Modul) aktivieren, wenn Sie Codemodulparameter konfigurieren, wie unten dargestellt. Durch Aktivieren dieses Kontrollkästchens wird der ausgewählte Parameter so konfiguriert, dass er ohne weitere Konfiguration automatisch in Protokollen oder Datenbankprotokollen angezeigt wird.


Codemodul – Kontrollkästchen „Enable Log“ (Protokoll aktivieren)


Zusätzliche Ergebnisse


Sie können zusätzliche benutzerdefinierte Daten für alle Schrittergebnisse über den Bereich „Additional Results“ (Zusätzliche Ergebnisse) aufnehmen. Dieser befindet sich auf der Registerkarte „Properties“ (Eigenschaften) des Bereichs „Step Settings“ (Schritteinstellungen) (siehe Abbildung unten).

Konfigurieren zusätzlicher Ergebnisse


TestStand bietet mehrere vorkonfigurierte zusätzliche Ergebnisse zum Protokollieren allgemeiner Eigenschaften, z. B. des Schrittkommentars und der Anforderungsinformationen.  Um auf diese vorkonfigurierten Ergebnisse zuzugreifen, klicken Sie auf die Schaltfläche Add Result From List (Ergebnis aus Liste hinzufügen), und wählen Sie ein Element in der Liste aus. Sie können auch einen Bedingungsausdruck für jeden zusätzlichen Ergebniseintrag angeben.  Das Ergebnis wird nur protokolliert, wenn der Ausdruck „True“ ergibt.


Weitere Informationen zu den Einstellungen für zusätzliche Ergebnisse finden Sie im Thema Additional Results Edit Tab (Registerkarte zum Bearbeiten zusätzlicher Ergebnisse) in der TestStand-Hilfe.


Result.ReportText einsetzen

Result.ReportText ist ein zusätzliches Zeichenfolgenelement im Ergebniscontainer, in dem benutzerdefinierte Informationen für den Schritt gespeichert werden. Wenn die Zeichenfolge nicht leer ist, enthält der Protokollgenerator die ReportText-Zeichenfolge als Feld im Protokoll. Das ReportText-Feld unterstützt HTML-Tags für alle Protokollformate außer ASCII. Sie können mit diesem Feld also Rich-Text-Elemente wie verwandte Bilder oder Hyperlinks einschließen.

Weitere Informationen über das Einfügen von Bildern in einen Report finden Sie unter Einfügen von Bildern in einen TestStand-Report.

Die folgende Abbildung zeigt ein Beispiel für das Einbetten eines Bildes in ein Schrittergebnis mithilfe von HTML in der ReportText-Eigenschaft.

Protokoll, das ein Bild in Result.ReportText anzeigt


Hinzufügen von Eigenschaften für benutzerdefinierte Schritttypen zum Protokoll

Mit TestStand können Sie Ihre eigenen benutzerdefinierten Schritttypen erstellen, um bestimmte Funktionen zu implementieren. In diesem Fall ist es häufig erforderlich, benutzerdefinierte Schritttypdaten zu protokollieren.

Hinweis: Wenn Sie keine Erfahrungen mit benutzerdefinierten Schritttypen in TestStand haben, lesen Sie den Artikel Best Practices for Custom Step Type Development (Best Practices für die Entwicklung benutzerdefinierter Schritttypen), bevor Sie diesen Abschnitt lesen.

Gehen Sie folgendermaßen vor, um eine benutzerdefinierte Schritteigenschaft zu erstellen, die im Protokoll angezeigt wird:

  1. Fügen Sie im Bereich „Types“ (Typen) dem Ergebniscontainer des Schritts eine benutzerdefinierte Eigenschaft hinzu.  Dadurch wird die Eigenschaft über den Ergebniserfassungsprozess der ResultList hinzugefügt.
  2. Aktivieren Sie das IncludeInReport-Flag für die Eigenschaft, damit der Protokollgenerator die Daten zum Protokoll hinzufügt:
  • Klicken Sie mit der rechten Maustaste auf die Eigenschaft, und wählen Sie Properties (Eigenschaften) aus.
  • Klicken Sie auf die Schaltfläche „Advanced“ (Erweitert), und wählen Sie dann Flags aus.
  • Aktivieren Sie die Option IncludeInReport, und klicken Sie für beide Dialogfelder auf OK.


Überschreiben von Protokoll-Callbacks

Die Prozessmodelle bieten eine Reihe von Callbacks, die Sie überschreiben können, um die Modellfunktionalität für eine bestimmte Clientsequenzdatei zu ändern.  Dieser Mechanismus eignet sich auch zum Anpassen des Protokollgenerators.  In diesem Abschnitt werden die folgenden allgemeinen Anpassungsmethoden beschrieben:

  • Protokolloptionen programmatisch festlegen
  • Zusätzliche Prüflings- und Stationsdaten zum Protokoll hinzufügen
  • Protokollgenerator direkt anpassen

Hinweis: Wenn Sie nicht mit Prozessmodell-Callbacks vertraut sind, lesen Sie das Hilfethema Using Callback Sequences to Modify Process Models (Verwenden von Callback-Sequenzen zum Ändern von Prozessmodellen), bevor Sie mit diesem Abschnitt fortfahren.

Protokolloptionen programmatisch festlegen

Zusätzlich zur Verwendung des Dialogfelds „Report Options“ (Protokolloptionen) können Sie Protokolloptionen programmatisch festlegen, indem Sie den ReportOptions-Callback in Ihrer Testsequenz überschreiben.  Gehen Sie folgendermaßen vor, um den Callback in Ihrer Sequenzdatei zu überschreiben:

  1. Klicken Sie mit der rechten Maustaste in den Bereich „Sequences“ (Sequenzen), und wählen Sie die Option Sequence File Callbacks (Sequenzdatei-Callbacks) aus.
  2. Wählen Sie den ReportOptions-Callback aus, und klicken Sie auf Add (Hinzufügen).
  3. Klicken Sie auf OK, um den Dialog zu schließen.  Beachten Sie, dass eine neue ReportOptions-Sequenz erstellt wurde (wie unten dargestellt).



Wenn Sie die Sequenz ausführen, ruft das Prozessmodell diese Callback-Sequenz unmittelbar nach dem Laden der aktuellen Protokolloptionen auf, die im Dialogfeld „Report Options“ (Protokolloptionen) festgelegt wurden.  Die aktuellen Protokolloptionen sind in der Variablen Parameters.ReportOptions enthalten.  Sie können die Werte dieser Eigenschaften ändern, um die Protokolloptionen für die aktuelle Ausführung zu ändern.  Diese Optionen wirken sich nicht auf die Einstellungen im Dialogfeld „Report Options“ (Protokolloptionen) oder andere Ausführungen aus. Um beispielsweise die On-the-Fly-Protokollerstellung für eine Sequenzdatei zu aktivieren, können Sie einen Anweisungsschritt mit dem folgenden Ausdruck erstellen:

Parameters.ReportOptions.UseOnTheFlyReporting =True


Protokollieren zusätzlicher Prüflings- und Stationsdaten in der Protokollkopfzeile (TestStand 2013 und höher)

Für eine Testanwendung müssen Sie möglicherweise zusätzliche identifizierende Informationen zum Prüfling angeben, z. B. den Standort des Herstellers.  Daten zu Prüfling und Station werden vom Prozessmodell in den Variablen Parameters.UUT und Parameters.ModelData.StationInfo gespeichert.  Die meisten von Ihnen erstellten Modell-Callbacks enthalten diese Eigenschaften als Parameter, damit Sie im Callback auf diese Daten zugreifen können. In TestStand 2013 und höher enthalten die Eigenschaften UUT und StationInfo eine AdditionalData-Untereigenschaft, bei der es sich um einen unstrukturierten Container handelt.  Sie können dieser Eigenschaft zur Laufzeit Daten hinzufügen, ohne Änderungen an den Datentypen UUT und StationInfo vorzunehmen.

Gehen Sie folgendermaßen vor, um mit dem AdditionalData-Container benutzerdefinierte Prüflingsdaten programmatisch zur Kopfzeile hinzuzufügen:

  1. Überschreiben Sie den PreUUT-Callback in der Client-Sequenzdatei.  Beachten Sie, dass die neue Callback-Sequenz die Parameters.UUT-Eigenschaft enthält.
  2. Fügen Sie einen Anweisungsschritt hinzu, um dynamisch eine Eigenschaft im Parameters.UUT.AdditionalData-Container hinzuzufügen. Dieser Ausdruck erstellt beispielsweise zwei Untereigenschaften für Zeichenfolgendaten:

Parameters.UUT.AdditionalData.SetValString("Manufacturer.Name",1,"National Instruments"),
Parameters.UUT.AdditionalData.SetValString("Manufacturer.Location",1,"Debrecen, Hungary"),

Hinweis: Wenn Sie die SetValString-Methode mit 1 als PropertyOption verwenden, wird eine Eigenschaft erstellt, wenn sie nicht vorhanden ist.

  1. Fügen Sie einen Anweisungsschritt hinzu, um das IncludeInReport-Flag für die AdditionalData-Eigenschaft so festzulegen, dass alle Untereigenschaften in das Protokoll aufgenommen werden:

Parameters.UUT.AdditionalData.SetFlags("",0,PropFlags_IncludeInReport)


Das folgende Protokoll enthält die benutzerdefinierten Daten im AdditionalData-Container.  Der Prozess zum Hinzufügen benutzerdefinierter Stationsdaten ist ähnlich, aber es kommt die Eigenschaft Parameters.ModelData.StationInfo anstelle von Parameters.UUT zum Einsatz.


Hinzufügen von Herstellerinformationen zur Protokollkopfzeile mithilfe des UUT.AdditionalData-Containers


Hinweis: Alternativ können Sie Daten manuell zum IncludeInReport-Flag für den Locals.UUT- oder Locals.ModelData.StationInfo-Container eines Prozessmodell-Eintrittspunkts zur Bearbeitungszeit hinzufügen und dieses aktivieren, um Prüflings- oder Stationsdaten für alle Clientsequenzdateien hinzuzufügen.


Protokollgeneratorfunktion direkt anpassen (HTML- und ASCII-Format)

Der Protokollgenerator definiert viele Callbacks, die Sie in einer Clientsequenzdatei überschreiben können. Jeder dieser Callbacks wird ausgeführt, nachdem der entsprechende Protokolltext erstellt wurde. Damit können Sie die Standardausgabe des Protokollgenerators ändern.  Sie sollten nur dann mit diesen Callbacks benutzerdefinierte Daten hinzufügen, wenn keine der zuvor beschriebenen Methoden möglich ist.

Diese Callbacks werden nur ausgeführt, wenn Sie die Option „Sequence“ (Sequenz) der Option „Select a Report Generator for Producing the Report Body“ (Protokollgenerator zum Erstellen des Protokollhauptteils auswählen) auf der Registerkarte „Contents“ (Inhalt) des Dialogfelds „Report Options“ (Protokolloptionen) aktivieren.  Diese Option ist für HTML- und ASCII-Protokolle verfügbar.   

  • ModifyReportHeader:  Die Ergebnisverarbeitungskomponente des Protokollgenerators ruft dies aus ihrer Post-Sequenz auf. Überschreiben Sie es, um die Protokollkopfzeile zu ändern.  Die Eigenschaft Parameters.ReportHeader enthält die Standard-Protokollkopfzeile.
  • ModifyReportEntry:  Die Ergebnisverarbeitungskomponente des Protokollgenerators ruft dies aus ihrer Post-Sequenz für jedes Ergebnis in der ResultList auf. Überschreiben Sie es, um den für jedes Ergebnis generierten Protokollabschnitt zu ändern. Die Eigenschaft Parameters.ReportEntry enthält die generierten Protokolldaten für den aktuellen ResultList-Eintrag.
  • ModifyReportFooter: Die Ergebnisverarbeitungskomponente des Protokollgenerators ruft dies aus ihrer Post-Sequenz auf. Überschreiben Sie es, um die Protokollfußzeile zu ändern. Die Eigenschaft Parameters.ReportFooter enthält die Standard-Protokollfußzeile.


Darstellung des Protokolls konfigurieren

Die Methode zum Anpassen der Darstellung des Protokolls hängt stark vom Protokollformat ab.  Bei ASCII- und HTML-Protokollen sind die Darstellungsinformationen und die Protokolldaten eng miteinander verbunden.  Das Ändern der Protokolldarstellung erfordert daher eine direkte Änderung des Protokollgeneratorcodes. Dazu benötigen Sie wiederum ein grundlegendes Verständnis des Protokollgenerators, was den Rahmen dieses Dokuments sprengt.  Weitere Informationen zur Implementierung des Protokollgenerators finden Sie im Artikel Report Generation Explained (Erläuterung der Protokollerstellung).

Wie im Abschnitt „Protokolloptionen“ dieses Dokuments beschrieben verwenden XML- und ATML-Protokolle Stylesheets zur Erstellung eines lesbaren Protokolls aus den Rohprotokolldaten.  Sie können die Darstellung dieser Protokolle anpassen, indem Sie das Stylesheet bearbeiten. Änderungen am Protokollgenerator selbst sind nicht erforderlich.  Weitere Informationen und Beispiele für die Anpassung von Stylesheets finden Sie im Artikel Customizing the Formatting and Appearance of TestStand XML and ATML Reports (Formatierung und Darstellung von XML- und ATML-Protokollen in TestStand anpassen).

Fazit

Das Anpassen von Protokollen in TestStand ist eine häufige Aufgabe, und TestStand bietet viele Funktionen zum Anpassen des Protokollinhalts, der Funktionalität und des Stils. Anhand des folgenden Ablaufdiagramms können Sie Entscheidungen zur Implementierung benutzerdefinierter Protokolle treffen.

 

Ablaufdiagramm zur Auswahl des richtigen Verfahrens zum Anpassen von Protokollen Ablaufdiagramm zur Auswahl des richtigen Verfahrens zum Anpassen von Protokollen