Datentreiber
Der Ausdruck datengetriebenes Testen bezieht sich auf eine verbreitete Methode bei automatisierten Tests, bei der Testfälle mehrfach mit unterschiedlichen Datensätzen ausgeführt werden. Dank des flexiblen Variablenkonzepts in QF-Test gibt es keine Einschränkungen, wie diese Daten genutzt werden können. Die häufigste Verwendung ist sicherlich für Eingabewerte in Event und erwartete Ergebnisse in Check Knoten.
QF-Test's Mechanismus für datengetriebenes Testen besteht aus dem Datentreiber Knoten, der benutzt wird um einen Datenkontext zur Verfügung zu stellen, und verschiedenen Arten von Daten Knoten. Aktuell gibt es den Datentabelle Knoten, der Daten in Form einer Tabelle in QF-Test selbst speichert, den CSV-Datei Knoten, der Daten aus einer CSV-Datei, sowie den Datenbank Knoten, der Daten aus einer Datenbank und den Excel-Datei Knoten, der Daten aus einer Excel-Datei liest. Es wird auch ein Erweiterungs-API für den Zugriff auf beliebige externe Daten zur Verfügung gestellt.
Weitere Informationen über die Zusammenarbeit der verschiedenen Teile des Datentreiber-Mechanismus finden Sie in Kapitel 23.
Datentreiber
|
Außer seiner besonderen Position im Testfallsatz oder Testschritt verhält sich ein Datentreiber wie eine normale Sequenz. Er stellt den Kontext für einen oder mehrere Daten Knoten bereit, für den sich diese während der Ausführung des Datentreibers registrieren können. Der Testfallsatz iteriert dann über die Datensätze, die von den registrierten Daten Knoten zur Verfügung gestellt werden und führt seine Childknoten aus, wie in Kapitel 23 beschrieben. Für diesen Zweck muss ein Datentreiber innerhalb eines Testfallsatz Knotens platziert werden, zwischen die optionalen Abhängigkeit und Vorbereitung Knoten. Datentreiber Knoten können auch innerhalb von Testschritt Knoten an erster Stelle platziert werden. |
Enthalten in: Testfallsatz, Testschritt.
Kinder: Beliebig
Ausführung: Wenn ein Testfallsatz oder Testschritt ausgeführt wird, überprüft dieser, ob ein Datentreiber vorhanden ist und führt ihn aus. Der Inhalt des Datentreiber Knotens ist nicht auf Daten Knoten beschränkt, sondern kann beliebige ausführbare Knoten enthalten, so dass jede Form von Vorbereitung realisiert werden kann, die für das Bereitstellen der Daten notwendig ist. Damit ist es auch möglich, Daten Knoten wieder zu verwenden, indem man sie in einer Prozedur platziert und diese aus dem Datentreiber heraus aufruft. Jeder Daten Knoten, der in einem Datentreiber Kontext registriert ist, wird vom Testfallsatz oder Testschritt auf seine Daten hin abgefragt.
Attribute:

- Name
-
Der Name eines Datentreibers ist eine Art Kurzkommentar. Er wird in der Baumdarstellung der Testsuite angegeben und sollte etwas über die Art der bereitgestellten Daten aussagen.
Variabel: Nein
Einschränkungen: Keine
- Name für Schleifendurchgang im Protokoll
-
Hier kann ein eigener Name für die Iterationsschritte definiert werden, der dann im Protokoll verwendet wird. Dieser kann Variablen der gebundenen Daten enthalten um damit das Auffinden eines spezifischen Iterationsschrittes zu erleichtern.
Variabel: Ja
Einschränkungen: Nein
- Name für separates Protokoll
-
Mit diesem Attribut kann ein Knoten als Bruchstelle zum Abteilen eines Protokolls markiert werden. Es legt den Dateinamen für das abgeteilte Protokoll fest. Nach jeder Iteration des Datentreibers wird das zugehörige Protokoll aus dem Hauptprotokoll entfernt und als eigenständiges Protokoll gespeichert. Diese Operation ist vollständig transparent, da das Hauptprotokoll eine Referenz auf das abgeteilte Protokoll erhält und somit vollständig navigierbar bleibt. Näheres zu geteilten Protokollen finden Sie in Abschnitt 7.1.6.
Dieses Attribut hat keinen Effekt, wenn die Option Geteilte Protokolle erzeugen deaktiviert ist oder geteilte Protokolle durch explizite Angabe von
-splitlog
im Batchmodus ausgeschaltet werden.Es ist nicht nötig für Eindeutigkeit der Dateinamen für abgeteilte Protokolle zu sorgen. Wo nötig hängt QF-Test eine Zahl an den Dateinamen an, um Konflikte zu vermeiden. Der Dateiname darf Verzeichnisse enthalten und es können - analog zur Angabe des Dateinamens für das Protokoll im Batchmodus - folgende Platzhalter in Kombination mit einem '%' oder '+' Zeichen verwendet werden:
Zeichen Bedeutung % '%'-Zeichen. + '+'-Zeichen. i Die aktuelle Runid wie mit -runid [<ID>]
angegeben.r Die Fehlerstufe des abgeteilten Protokolls. w Die Anzahl der Warnungen im abgeteilten Protokoll. e Die Anzahl der Fehler im abgeteilten Protokoll. x Die Anzahl der Exceptions im abgeteilten Protokoll. t Der Threadindex zu dem das abgeteilte Protokoll gehört (für Tests mit parallelen Threads). y Das aktuelle Jahr (2 Ziffern). Y Das aktuelle Jahr (4 Ziffern). M Der aktuelle Monat (2 Ziffern). d Der aktuelle Tag (2 Ziffern). h Die aktuelle Stunde (2 Ziffern). m Die aktuelle Minute (2 Ziffern). s Die aktuelle Sekunde (2 Ziffern). Tabelle 42.5: Platzhalter für das Attribut Name für separates Protokoll Variabel: Ja
Einschränkungen: Keine, Zeichen die für Dateinamen nicht zulässig sind werden durch '_' ersetzt.
- Variablendefinitionen
-
Hier können Sie Werte für Variablen definieren, die während der Ausführung der Children der Sequenz Gültigkeit besitzen. Näheres zur Arbeit mit der Tabelle finden Sie in Abschnitt 2.2.5. Eine detaillierte Erklärung zur Definition und Verwendung von Variablen finden Sie in Kapitel 6.
Variabel: Namen der Variablen nein, Werte ja
Einschränkungen: Keine
- QF-Test ID
-
Die QF-Test ID ist für diesen Knoten zur Zeit ohne Bedeutung.
Variabel: Nein
Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.
- Verzögerung vorher/nachher
-
Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.
Variabel: Ja
Einschränkungen: Leer oder >0
- Bemerkung
-
Hier können Sie einen beliebigen Kommentar eintragen.
Hinweis Für die ausführliche Dokumentation, insbesondere von Testfallsatz, Testfall oder Prozedur Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von Alt+Eingabe oder Klicken des
Buttons der Kommentar komfortabel bearbeitet werden kann.
Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.
Falls bei Komponenten Knoten in dem Bemerkungsfeld eine Eintragung gemacht wurde, wird der Knoten bei der Suche bzw. dem Löschen von ungenutzten Komponenten übersprungen.
Variabel: Ja
Einschränkungen: Keine
Datentabelle
|
Eine Datentabelle bietet eine komfortable Schnittstelle um Testdaten in Tabellen direkt in QF-Test zu speichern. Details zum Mechanismus des datengetriebenen Testens in QF-Test finden Sie in Kapitel 23. |
Enthalten in: Beliebig
Kinder: Keine
Ausführung:
Die Datentabelle expandiert Variablen in der Tabelle entsprechend der Option
Werte von Variablen beim Binden sofort expandieren. Jede Zeile wird individuell von links nach
rechts expandiert, so dass eine Zelle - innerhalb derselben Zeile - auf Variablen
verweisen kann, die in einer Spalte weiter links gebunden wurden.
Dann registriert sich die Datentabelle im Kontext
eines Datentreibers. Zusätzlich wird eine Propertygruppe mit dem Namen des Knotens und den
Variablen size
und totalsize
angelegt. size
beinhaltet die Anzahl der Datensätze mit Rücksicht auf Iterationsintervalle.
totalsize
beinhaltet die gesamte Anzahl an Datensätzen der Datenquelle
ohne Rücksicht auf Iterationsintervalle. Nachdem alle Daten Knoten angemeldet wurden, fragt der
zugehörige Testfallsatz die Datensätze der Datentabelle ab, um darüber zu
iterieren.
Wenn kein Datentreiber Kontext verfügbar ist, wird die Propertygruppe um alle Variablen
des Knotens erweitert.
Attribute:

- Name
-
Der Name eines Daten Knotens ist ein Pflichtattribut. Er wird benutzt, um Daten Knoten im selben Datentreiber Kontext zu unterscheiden. Ein Break Knoten, der während des datengetriebenen Tests ausgeführt wird, kann durch Angabe dieses Namens in seinem Attribut QF-Test ID der Schleife gezielt die Schleife dieser Datentabelle abbrechen.
Variabel: Ja
Einschränkungen: Keine
- Zählervariable
-
Der Name der Variablen, an die der Index des Schleifendurchgangs gebunden wird.
Variabel: Ja
Einschränkungen: Keine
- Iterationsbereiche
-
Ein Optionaler Satz von zu nutzenden Indizes oder Bereichen für die Daten. Dies ist besonders während der Testentwicklung hilfreich, um nur über einen einzelnen Index oder einen Teil der Daten zu iterieren.
Bereiche werden durch ',' getrennt. Jeder Bereich ist entweder in einzelner Index, oder ein geschlossenes Intervall der Form 'von-bis' oder 'von:bis' wobei die Angabe von 'bis' optional ist. Indizes oder Bereiche können mehrfach, überlappend oder in absteigender Richtung angegeben werden. Indizes sind 0-basiert, ein negativer Index wird vom Ende her gezählt, wobei -1 dem letzten Eintrag entspricht. Eine ungültige Syntax oder ein Index außerhalb des vorhandenen Datenbereichs führen zu einer
BadRangeException
.Die folgende Tabelle zeigt einige Beispiele für Iterationsbereiche und die daraus resultierenden Indizes.
Iterationsbereiche Daraus resultierende Indizes 0 [0] -2, -1 [18, 19] 1-2,4:5 [1, 2, 4, 5] 18:,-3- [18, 19, 17, 18, 19] 3-2,16:15 [3, 2, 16, 15] Tabelle 42.6: Beispiele für Iterationsbereiche Hinweis Der für die Zählervariable gebunde Wert entspricht dem angegebenen Index im Iterationsbereich, nicht der Zahl der tatsächlich durchgeführten Iterationen. Wenn Sie z.B. '2' angeben, führt dies zu einer einzigen Iteration mit der Zählervariable '2', nicht '0'.
Variabel: Ja
Einschränkungen: Gültige Syntax und Indexwerte
- Daten
-
Hier werden die aktuellen Testdaten definiert. Jede Tabellenspalte steht hierbei für eine Variable, deren Name im Spaltenkopf spezifiziert wird. Jede Zeile ist ein Datensatz, ein Wert je Variable. So bestimmt die Zeilenzahl die Anzahl der Durchläufe in der datengetriebenen Schleife. Um Ihre Daten eingeben zu können, müssen Sie als erstes Spalten zur Tabelle hinzufügen und somit die Variablen definieren. Dann können mittels neuer Zeilen die Werte festgelegt werden. Näheres zur Arbeit mit der Tabelle finden Sie in Abschnitt 2.2.5.
Variabel: Ja, sogar die Spaltentitel
Einschränkungen: Keine
- QF-Test ID
-
Die QF-Test ID ist für diesen Knoten zur Zeit ohne Bedeutung.
Variabel: Nein
Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.
- Verzögerung vorher/nachher
-
Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.
Variabel: Ja
Einschränkungen: Leer oder >0
- Bemerkung
-
Hier können Sie einen beliebigen Kommentar eintragen.
Hinweis Für die ausführliche Dokumentation, insbesondere von Testfallsatz, Testfall oder Prozedur Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von Alt+Eingabe oder Klicken des
Buttons der Kommentar komfortabel bearbeitet werden kann.
Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.
Falls bei Komponenten Knoten in dem Bemerkungsfeld eine Eintragung gemacht wurde, wird der Knoten bei der Suche bzw. dem Löschen von ungenutzten Komponenten übersprungen.
Variabel: Ja
Einschränkungen: Keine
Datenbank
|
Ein Datenbank Knoten wird benutzt, um externe Daten aus einer Datenbank
zu laden. Damit QF-Test auf die Datenbank zugreifen kann, muss die jar-Datei mit den
Klassen des Datenbanktreibers im QF-Test Klassenpfad zu finden sein. Üblicherweise wird
die Datei ins Weitere Details zum Datentreiber-Mechanismus finden Sie in Kapitel 23. |
Enthalten in: Beliebig
Kinder: Keine
Ausführung:
Der Datenbank Knoten lädt die Daten aus der Datenbank und expandiert
Variablen entsprechend der Option Werte von Variablen beim Binden sofort expandieren. Jede Zeile
wird individuell von links nach rechts expandiert, so dass eine Zelle - innerhalb
derselben Zeile - auf Variablen verweisen kann, die in einer Spalte weiter links
gebunden wurden. Dann registriert sich der Datenbank im Kontext eines
Datentreibers. Für jedes Feld im select-Ausdruck wird eine Variable gleichen Namens
definiert. Die Schreibweise (Groß/Klein) kann jedoch vom Datenbanktreiber abhängen, z.B.
nur Großbuchstaben bei Oracle.
Zusätzlich wird eine Propertygruppe mit dem Namen des Knotens und den
Variablen size
und totalsize
angelegt. size
beinhaltet die Anzahl der Datensätze mit Rücksicht auf Iterationsintervalle.
totalsize
beinhaltet die gesamte Anzahl an Datensätzen der Datenquelle
ohne Rücksicht auf Iterationsintervalle. Nachdem alle Daten Knoten angemeldet wurden, fragt der
zugehörige Testfallsatz die Datensätze der Datenbank ab, um darüber zu
iterieren.
Wenn kein Datentreiber Kontext verfügbar ist, wird die Propertygruppe um alle Variablen
des Knotens erweitert.
Attribute:

- Name
-
Der Name eines Daten Knotens ist ein Pflichtattribut. Er wird benutzt, um Daten Knoten im selben Datentreiber Kontext zu unterscheiden. Ein Break Knoten, der während des datengetriebenen Tests ausgeführt wird, kann durch Angabe dieses Namens in seinem Attribut QF-Test ID der Schleife gezielt die Schleife dieser Datentabelle abbrechen.
Variabel: Ja
Einschränkungen: Keine
- Zählervariable
-
Der Name der Variablen, an die der Index des Schleifendurchgangs gebunden wird.
Variabel: Ja
Einschränkungen: Keine
- Iterationsbereiche
-
Ein Optionaler Satz von zu nutzenden Indizes oder Bereichen für die Daten. Dies ist besonders während der Testentwicklung hilfreich, um nur über einen einzelnen Index oder einen Teil der Daten zu iterieren.
Bereiche werden durch ',' getrennt. Jeder Bereich ist entweder in einzelner Index, oder ein geschlossenes Intervall der Form 'von-bis' oder 'von:bis' wobei die Angabe von 'bis' optional ist. Indizes oder Bereiche können mehrfach, überlappend oder in absteigender Richtung angegeben werden. Indizes sind 0-basiert, ein negativer Index wird vom Ende her gezählt, wobei -1 dem letzten Eintrag entspricht. Eine ungültige Syntax oder ein Index außerhalb des vorhandenen Datenbereichs führen zu einer
BadRangeException
.Die folgende Tabelle zeigt einige Beispiele für Iterationsbereiche und die daraus resultierenden Indizes.
Iterationsbereiche Daraus resultierende Indizes 0 [0] -2, -1 [18, 19] 1-2,4:5 [1, 2, 4, 5] 18:,-3- [18, 19, 17, 18, 19] 3-2,16:15 [3, 2, 16, 15] Tabelle 42.7: Beispiele für Iterationsbereiche Hinweis Der für die Zählervariable gebunde Wert entspricht dem angegebenen Index im Iterationsbereich, nicht der Zahl der tatsächlich durchgeführten Iterationen. Wenn Sie z.B. '2' angeben, führt dies zu einer einzigen Iteration mit der Zählervariable '2', nicht '0'.
Variabel: Ja
Einschränkungen: Gültige Syntax und Indexwerte
- SQL-Abfrage
-
Die SQL-Abfrage, die ausgeführt wird, um die gewünschten Testdaten zu erhalten. Dies sollte ein select Ausdruck sein. Für jedes Feld im select-Ausdruck wird eine Variable gleichen Namens definiert. Die Schreibweise (Groß/Klein) kann jedoch vom Datenbanktreiber abhängen, z.B. nur Großbuchstaben bei Oracle.
Variabel: Ja
Einschränkungen: Darf nicht leer sein
- Treiberklasse
-
Die Klasse des Datenbanktreibers.
Hinweis Die jar-Datei mit den Klassen des Datenbanktreibers muss vor dem Start von QF-Test ins
qftest
Pluginverzeichnis kopiert werden.Hier eine Liste der gebräuchlichsten Datenbanktreiber:
Datenbank Klassenname für den JDBC-Treiber Borland Interbase interbase.interclient.Driver
DB2 com.ibm.db2.jcc.DB2Driver
Informix com.informix.jdbc.IfxDriver
IDS Server ids.sql.IDSDriver
MS SQL Server 2000 com.microsoft.jdbc.sqlserver.SQLServerDriver
MS SQL Server 2005 com.microsoft.sqlserver.jdbc.SQLServerDriver
mSQL COM.imaginary.sql.msql.MsqlDriver
MySQL com.mysql.jdbc.Driver
Oracle oracle.jdbc.driver.OracleDriver
Pointbase com.pointbase.jdbc.jdbcUniversalDriver
PostgreSQL org.postgresql.Driver
Standard Treiber sun.jdbc.odbc.JdbcOdbcDriver
Sybase com.sybase.jdbc2.jdbc.SybDriver
SQLite org.sqlite.JDBC
Tabelle 42.8: JDBC Treiberklassen Variabel: Ja
Einschränkungen: Darf nicht leer sein
- Verbindung
-
Der Connection String für die Datenbank. Dieser ist meist von der Form
jdbc:datenbankname://datenbankserver/datenbankname
.Hier eine Liste der gebräuchlichsten Connection Strings:
Datenbank Beispiel Derby jdbc:derby:net://datenbankserver:port/
IBM DB2 jdbc:db2://datenbank
HSQLB jdbc:hsqldb:file:datenbank
Interbase jdbc:interbase://datenbankserver/datenbank.gdb
MS SQL Server 2000 jdbc:microsoft:sqlserver://databaseserver:
port;DatabaseName=database;
MS SQL Server 2005 jdbc:sqlserver://databaseserver:
port;DatabaseName=database;
MySQL jdbc:mysql://datenbankserver/datenbank
PostgreSQL jdbc:postgresql://datenbankserver/datenbank
ODBC-Datenquellen jdbc:odbc:datenbank
Oracle Thin jdbc:oracle:thin:@datenbankserver:port:
datenbank
Sybase jdbc:sybase:tds:datenbankserver:port/datenbank
SQLite jdbc:sqlite:sqlite_database_file_path
Tabelle 42.9: Datenbank Verbindungen Variabel: Ja
Einschränkungen: Darf nicht leer sein
- Datenbankbenutzer
-
Der Benutzer für die Datenbank. Sollte Ihre Datenbank keinen Benutzer benötigen, lassen Sie dieses Feld einfach leer.
Variabel: Ja
Einschränkungen: Keine
- Datenbankpasswort
-
Das Passwort für den Benutzer der Datenbank. Sollte Ihre Datenbank keinen Benutzer oder kein Passwort benötigen, lassen Sie dieses Feld einfach leer. Um das Passwort nach Eingabe in dieses Feld zu verschlüsseln, wählen Sie nach einem Rechts-Klick »Text verschlüsseln« aus dem resultierenden Popupmenü. Geben Sie auf jeden Fall vor der Verschlüsselung einen Salt in der Option Salt für Verschlüsselung von Kennwörtern an.
Variabel: Ja
Einschränkungen: Keine
- QF-Test ID
-
Die QF-Test ID ist für diesen Knoten zur Zeit ohne Bedeutung.
Variabel: Nein
Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.
- Verzögerung vorher/nachher
-
Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.
Variabel: Ja
Einschränkungen: Leer oder >0
- Bemerkung
-
Hier können Sie einen beliebigen Kommentar eintragen.
Hinweis Für die ausführliche Dokumentation, insbesondere von Testfallsatz, Testfall oder Prozedur Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von Alt+Eingabe oder Klicken des
Buttons der Kommentar komfortabel bearbeitet werden kann.
Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.
Falls bei Komponenten Knoten in dem Bemerkungsfeld eine Eintragung gemacht wurde, wird der Knoten bei der Suche bzw. dem Löschen von ungenutzten Komponenten übersprungen.
Variabel: Ja
Einschränkungen: Keine
Excel-Datei
|
Ein Excel-Datei Knoten wird benutzt, um externe Daten aus einer Excel-Datei zu laden. In der ersten Zeile müssen die Namen der Variablen definiert werden und in den weiteren Zeilen die zu bindenden Werte, wobei jede Zeile einem Testdatensatz entspricht. Hinweis Die korrekte Darstellung der Zelleninhalte vom Typ "Datum", "Zeit" oder "Währung" kann nicht immer sicher gestellt werden, da Excel den Wert und das Format der Zelle getrennt voneinander speichert und die verwendete Java-Bibliothek nicht alle Möglichkeiten unterstützt. Dennoch sollte der Excel-Datei Knoten weitestgehend korrekt arbeiten. Sollte es zu Problemen mit diesen Formaten kommen, ändern Sie bitte in der Excel-Datei den Typ der betroffenen Zellen auf "Text". In QF-Test werden nach dem Einlesen sowieso alle Werte als Strings behandelt. Weitere Details zum Datentreiber-Mechanismus finden Sie in Kapitel 23. |
Enthalten in: Beliebig
Kinder: Keine
Ausführung:
Der Excel-Datei Knoten liest die Daten aus der Excel-Datei und expandiert
Variablen entsprechend der Option Werte von Variablen beim Binden sofort expandieren. Jede Zeile
wird individuell von links nach rechts expandiert, so dass eine Zelle - innerhalb
derselben Zeile - auf Variablen verweisen kann, die in einer Spalte weiter links
gebunden wurden. Dann registriert sich der Excel-Datei im Kontext eines
Datentreibers.
Zusätzlich wird eine Propertygruppe mit dem Namen des Knotens und den
Variablen size
und totalsize
angelegt. size
beinhaltet die Anzahl der Datensätze mit Rücksicht auf Iterationsintervalle.
totalsize
beinhaltet die gesamte Anzahl an Datensätzen der Datenquelle
ohne Rücksicht auf Iterationsintervalle. Nachdem alle Daten Knoten angemeldet wurden, fragt der
zugehörige Testfallsatz die Datensätze der Excel-Datei ab, um darüber zu
iterieren.
Wenn kein Datentreiber Kontext verfügbar ist, wird die Propertygruppe um alle Variablen
des Knotens erweitert.
Attribute:

- Name
-
Der Name eines Daten Knotens ist ein Pflichtattribut. Er wird benutzt, um Daten Knoten im selben Datentreiber Kontext zu unterscheiden. Ein Break Knoten, der während des datengetriebenen Tests ausgeführt wird, kann durch Angabe dieses Namens in seinem Attribut QF-Test ID der Schleife gezielt die Schleife dieser Datentabelle abbrechen.
Variabel: Ja
Einschränkungen: Keine
- Zählervariable
-
Der Name der Variablen, an die der Index des Schleifendurchgangs gebunden wird.
Variabel: Ja
Einschränkungen: Keine
- Iterationsbereiche
-
Ein Optionaler Satz von zu nutzenden Indizes oder Bereichen für die Daten. Dies ist besonders während der Testentwicklung hilfreich, um nur über einen einzelnen Index oder einen Teil der Daten zu iterieren.
Bereiche werden durch ',' getrennt. Jeder Bereich ist entweder in einzelner Index, oder ein geschlossenes Intervall der Form 'von-bis' oder 'von:bis' wobei die Angabe von 'bis' optional ist. Indizes oder Bereiche können mehrfach, überlappend oder in absteigender Richtung angegeben werden. Indizes sind 0-basiert, ein negativer Index wird vom Ende her gezählt, wobei -1 dem letzten Eintrag entspricht. Eine ungültige Syntax oder ein Index außerhalb des vorhandenen Datenbereichs führen zu einer
BadRangeException
.Die folgende Tabelle zeigt einige Beispiele für Iterationsbereiche und die daraus resultierenden Indizes.
Iterationsbereiche Daraus resultierende Indizes 0 [0] -2, -1 [18, 19] 1-2,4:5 [1, 2, 4, 5] 18:,-3- [18, 19, 17, 18, 19] 3-2,16:15 [3, 2, 16, 15] Tabelle 42.10: Beispiele für Iterationsbereiche Hinweis Der für die Zählervariable gebunde Wert entspricht dem angegebenen Index im Iterationsbereich, nicht der Zahl der tatsächlich durchgeführten Iterationen. Wenn Sie z.B. '2' angeben, führt dies zu einer einzigen Iteration mit der Zählervariable '2', nicht '0'.
Variabel: Ja
Einschränkungen: Gültige Syntax und Indexwerte
- Name der Excel-Datei
-
Der Name der Excel-Datei aus der die Testdaten gelesen werden sollen. Relative Pfadangaben werden relativ zum Verzeichnis der Testsuite aufgelöst.
Der Knopf über dem Attribut öffnet einen Dialog in dem die Excel-Datei interaktiv ausgewählt werden kann. Den Dialog erreichen Sie auch mittels Shift+Return oder Alt+Return, sofern sich der Fokus im Textfeld befindet.
Variabel: Ja
Einschränkungen: Darf nicht leer sein
- Name des Tabellenblatts
-
Der Name des Tabellenblatts aus dem die Testdaten gelesen werden sollen.
Variabel: Ja
Einschränkungen: Keine
- Datumsformat vorgeben (z.B. dd.MM.yyyy)
-
In diesem Textfeld können Sie ein Datumsformat vorgeben, welches für alle aus der Excel-Datei geladenen Zellen vom Typ "Datum" verwendet werden soll. Dieses Format muss wie für die Java-Klasse
SimpleDateFormat
spezifiziert sein, d.h. 'd' für Tag, 'M' für Monat und 'y' für Jahr. Mit 'dd' werden zwei Stellen für den Tag reserviert, analog dazu gibt es 'MM', 'yy' oder 'yyyy'.Variabel: Ja
Einschränkungen: Keine
- Variablen in Zeilen
-
Wenn dieses Attribute angehakt ist, werden die Namen der Variablen aus der ersten Zeile der Excel-Datei ausgelesen, sonst aus der ersten Spalte.
Variabel: Ja
Einschränkungen: Keine
- QF-Test ID
-
Die QF-Test ID ist für diesen Knoten zur Zeit ohne Bedeutung.
Variabel: Nein
Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.
- Verzögerung vorher/nachher
-
Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.
Variabel: Ja
Einschränkungen: Leer oder >0
- Bemerkung
-
Hier können Sie einen beliebigen Kommentar eintragen.
Hinweis Für die ausführliche Dokumentation, insbesondere von Testfallsatz, Testfall oder Prozedur Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von Alt+Eingabe oder Klicken des
Buttons der Kommentar komfortabel bearbeitet werden kann.
Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.
Falls bei Komponenten Knoten in dem Bemerkungsfeld eine Eintragung gemacht wurde, wird der Knoten bei der Suche bzw. dem Löschen von ungenutzten Komponenten übersprungen.
Variabel: Ja
Einschränkungen: Keine
CSV-Datei
|
Eine CSV-Datei wird benutzt, um externe Daten aus einer Datei zu laden und für datengetriebene Tests bereit zu stellen. CSV steht für Comma-separated Values - also für durch Komma getrennte Werte, welches ein Standardformat für Textdateien darstellt. Hierbei steht jede Zeile in der Datei für einen Datensatz, dessen Werte durch ein Trennzeichen separiert werden. Als Trennzeichen wird oft, aber nicht ausschließlich, ein Komma (',') verwendet. Bei der Benutzung in einem CSV-Datei Knoten muss die erste Zeile der CSV-Datei die Namen der Variablen enthalten, die gebunden werden sollen. In den weiteren Zeilen folgen dann die Werte für die einzelnen Iterationsschritte. Leider gibt es bei CSV-Dateien uneinheitliche Definitionen für Spezialfälle wie das Schützen von Sonderzeichen (quoting), die Behandlung von Leerzeichen oder Trennzeichen in Werten oder mehrzeilige Werte. Aktuell existieren zwei de-facto Standards. Einen benutzt Microsoft Excel und einen der Rest der Welt. QF-Test unterstützt beide. Weitere Details zum Datentreiber-Mechanismus finden Sie in Kapitel 23. |
Enthalten in: Beliebig
Kinder: Keine
Ausführung:
Der CSV-Datei Knoten liest die Daten aus der CSV-Datei und expandiert
Variablen entsprechend der Option Werte von Variablen beim Binden sofort expandieren. Jede Zeile
wird individuell von links nach rechts expandiert, so dass eine Zelle - innerhalb
derselben Zeile - auf Variablen verweisen kann, die in einer Spalte weiter links
gebunden wurden. Dann registriert sich der CSV-Datei im Kontext
eines Datentreibers.
Zusätzlich wird eine Propertygruppe mit dem Namen des Knotens und den
Variablen size
und totalsize
angelegt. size
beinhaltet die Anzahl der Datensätze mit Rücksicht auf Iterationsintervalle.
totalsize
beinhaltet die gesamte Anzahl an Datensätzen der Datenquelle
ohne Rücksicht auf Iterationsintervalle. Nachdem alle Daten Knoten angemeldet wurden, fragt der
zugehörige Testfallsatz die Datensätze der CSV-Datei ab, um darüber zu
iterieren.
Wenn kein Datentreiber Kontext verfügbar ist, wird die Propertygruppe um alle Variablen
des Knotens erweitert.
Attribute:

- Name
-
Der Name eines Daten Knotens ist ein Pflichtattribut. Er wird benutzt, um Daten Knoten im selben Datentreiber Kontext zu unterscheiden. Ein Break Knoten, der während des datengetriebenen Tests ausgeführt wird, kann durch Angabe dieses Namens in seinem Attribut QF-Test ID der Schleife gezielt die Schleife dieser Datentabelle abbrechen.
Variabel: Ja
Einschränkungen: Keine
- Zählervariable
-
Der Name der Variablen, an die der Index des Schleifendurchgangs gebunden wird.
Variabel: Ja
Einschränkungen: Keine
- Iterationsbereiche
-
Ein Optionaler Satz von zu nutzenden Indizes oder Bereichen für die Daten. Dies ist besonders während der Testentwicklung hilfreich, um nur über einen einzelnen Index oder einen Teil der Daten zu iterieren.
Bereiche werden durch ',' getrennt. Jeder Bereich ist entweder in einzelner Index, oder ein geschlossenes Intervall der Form 'von-bis' oder 'von:bis' wobei die Angabe von 'bis' optional ist. Indizes oder Bereiche können mehrfach, überlappend oder in absteigender Richtung angegeben werden. Indizes sind 0-basiert, ein negativer Index wird vom Ende her gezählt, wobei -1 dem letzten Eintrag entspricht. Eine ungültige Syntax oder ein Index außerhalb des vorhandenen Datenbereichs führen zu einer
BadRangeException
.Die folgende Tabelle zeigt einige Beispiele für Iterationsbereiche und die daraus resultierenden Indizes.
Iterationsbereiche Daraus resultierende Indizes 0 [0] -2, -1 [18, 19] 1-2,4:5 [1, 2, 4, 5] 18:,-3- [18, 19, 17, 18, 19] 3-2,16:15 [3, 2, 16, 15] Tabelle 42.11: Beispiele für Iterationsbereiche Hinweis Der für die Zählervariable gebunde Wert entspricht dem angegebenen Index im Iterationsbereich, nicht der Zahl der tatsächlich durchgeführten Iterationen. Wenn Sie z.B. '2' angeben, führt dies zu einer einzigen Iteration mit der Zählervariable '2', nicht '0'.
Variabel: Ja
Einschränkungen: Gültige Syntax und Indexwerte
- Name der CSV-Datei
-
Der Name der CSV-Datei aus der die Testdaten gelesen werden sollen. Relative Pfadangaben werden relativ zum Verzeichnis der Testsuite aufgelöst.
Der Knopf über dem Attribut öffnet einen Dialog in dem die CSV-Datei interaktiv ausgewählt werden kann. Den Dialog erreichen Sie auch mittels Shift+Return oder Alt+Return, sofern sich der Fokus im Textfeld befindet.
Variabel: Ja
Einschränkungen: Darf nicht leer sein
- Kodierung der Datei
-
Eine optionale Kodierung für die CSV-Datei, z.B "UTF-8". Ist keine Kodierung angeben, wird die Datei mit der Standard-Kodierung der Java-VM gelesen.
Variabel: Ja
Einschränkungen: Die Kodierung muss von der Java-VM unterstützt werden.
- Microsoft Excel CSV-Format lesen
-
Wenn diese Option gesetzt ist, versucht QF-Test die CSV-Datei gemäß dem von Microsoft Excel verwendeten Format einzulesen.
Variabel: Ja
Einschränkungen: Keine
- Trennzeichen
-
Mit diesem Attribut können sie das Zeichen festlegen, welches zur Trennung der Datenwerte in der CSV-Datei verwendet wird. Wenn kein Trennzeichen definiert ist, wird das Komma (',') als Standardwert genutzt. Wenn Microsoft Excel CSV-Format lesen gesetzt ist, wird dieses Attribut ignoriert.
Variabel: Ja
Einschränkungen: Keine
- QF-Test ID
-
Die QF-Test ID ist für diesen Knoten zur Zeit ohne Bedeutung.
Variabel: Nein
Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.
- Verzögerung vorher/nachher
-
Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.
Variabel: Ja
Einschränkungen: Leer oder >0
- Bemerkung
-
Hier können Sie einen beliebigen Kommentar eintragen.
Hinweis Für die ausführliche Dokumentation, insbesondere von Testfallsatz, Testfall oder Prozedur Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von Alt+Eingabe oder Klicken des
Buttons der Kommentar komfortabel bearbeitet werden kann.
Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.
Falls bei Komponenten Knoten in dem Bemerkungsfeld eine Eintragung gemacht wurde, wird der Knoten bei der Suche bzw. dem Löschen von ungenutzten Komponenten übersprungen.
Variabel: Ja
Einschränkungen: Keine
Datenschleife
|
Bei einem Datenschleife Knoten handelt es sich um eine einfache Schleife, bei der eine einzelne Variable als Schleifenzähler gebunden wird. So können Testfälle mehrfach ausgeführt werden, indem sie in einen Testfallsatz mit einem Datentreiber und einer Datenschleife gelegt werden. |
Enthalten in: Beliebig
Kinder: Keine
Ausführung:
Bei ihrer Ausführung registriert sich die Datenschleife lediglich im Kontext
eines Datentreibers. Die Zählvariable wird als Variable gesetzt.
Zusätzlich wird eine Propertygruppe mit dem Namen des Knotens und den
Variablen size
und totalsize
angelegt. size
beinhaltet die Anzahl der Datensätze mit Rücksicht auf Iterationsintervalle.
totalsize
beinhaltet die gesamte Anzahl an Datensätzen der Datenquelle
ohne Rücksicht auf Iterationsintervalle. Nachdem alle Daten Knoten angemeldet wurden, fragt der
zugehörige Testfallsatz die Datensätze der Datenschleife ab, um darüber zu
iterieren.
Wenn kein Datentreiber Kontext verfügbar ist, wird die Propertygruppe um alle Variablen
des Knotens erweitert.
Attribute:

- Name
-
Der Name eines Daten Knotens ist ein Pflichtattribut. Er wird benutzt, um Daten Knoten im selben Datentreiber Kontext zu unterscheiden. Ein Break Knoten, der während des datengetriebenen Tests ausgeführt wird, kann durch Angabe dieses Namens in seinem Attribut QF-Test ID der Schleife gezielt die Schleife dieser Datentabelle abbrechen.
Variabel: Ja
Einschränkungen: Keine
- Zählervariable
-
Der Name der Variablen, an die der Index des Schleifendurchgangs gebunden wird.
Variabel: Ja
Einschränkungen: Keine
- Iterationsbereiche
-
Ein Optionaler Satz von zu nutzenden Indizes oder Bereichen für die Daten. Dies ist besonders während der Testentwicklung hilfreich, um nur über einen einzelnen Index oder einen Teil der Daten zu iterieren.
Bereiche werden durch ',' getrennt. Jeder Bereich ist entweder in einzelner Index, oder ein geschlossenes Intervall der Form 'von-bis' oder 'von:bis' wobei die Angabe von 'bis' optional ist. Indizes oder Bereiche können mehrfach, überlappend oder in absteigender Richtung angegeben werden. Indizes sind 0-basiert, ein negativer Index wird vom Ende her gezählt, wobei -1 dem letzten Eintrag entspricht. Eine ungültige Syntax oder ein Index außerhalb des vorhandenen Datenbereichs führen zu einer
BadRangeException
.Die folgende Tabelle zeigt einige Beispiele für Iterationsbereiche und die daraus resultierenden Indizes.
Iterationsbereiche Daraus resultierende Indizes 0 [0] -2, -1 [18, 19] 1-2,4:5 [1, 2, 4, 5] 18:,-3- [18, 19, 17, 18, 19] 3-2,16:15 [3, 2, 16, 15] Tabelle 42.12: Beispiele für Iterationsbereiche Hinweis Der für die Zählervariable gebunde Wert entspricht dem angegebenen Index im Iterationsbereich, nicht der Zahl der tatsächlich durchgeführten Iterationen. Wenn Sie z.B. '2' angeben, führt dies zu einer einzigen Iteration mit der Zählervariable '2', nicht '0'.
Variabel: Ja
Einschränkungen: Gültige Syntax und Indexwerte
- Anzahl Wiederholungen
-
Dieser Wert legt die Anzahl der Durchgänge für die Ausführung fest.
Dieses Attribut ist prädestiniert für den Einsatz von Variablen. Wenn Sie die Anzahl Wiederholungen z.B. auf
$(count)
setzen, können Sie den Wert für die Variablecount
in den Variablen der Suite (vgl. Kapitel 6) auf 1 oder 2 setzen. Das vereinfacht das Erstellen und Ausprobieren der Testsuite.Wenn Sie den Test dann ernsthaft ausführen, z.B. automatisch mittels
qftest -batch
, können Sie durch Angabe von-variable count=100
auf der Kommandozeile den Wert fürcount
nach Belieben variieren.Variabel: Ja
Einschränkungen: >0
- QF-Test ID
-
Die QF-Test ID ist für diesen Knoten zur Zeit ohne Bedeutung.
Variabel: Nein
Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.
- Verzögerung vorher/nachher
-
Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.
Variabel: Ja
Einschränkungen: Leer oder >0
- Bemerkung
-
Hier können Sie einen beliebigen Kommentar eintragen.
Hinweis Für die ausführliche Dokumentation, insbesondere von Testfallsatz, Testfall oder Prozedur Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von Alt+Eingabe oder Klicken des
Buttons der Kommentar komfortabel bearbeitet werden kann.
Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.
Falls bei Komponenten Knoten in dem Bemerkungsfeld eine Eintragung gemacht wurde, wird der Knoten bei der Suche bzw. dem Löschen von ungenutzten Komponenten übersprungen.
Variabel: Ja
Einschränkungen: Keine