Avatar of Ute Erler
Autor: Ute Erler
08. Oktober 2019

Excel-Dateien lesen und schreiben mit QF-Test

Wenn Sie in Ihrem Testfall Daten aus einer Excel Datei  verwenden wollen oder Testergebnisse in eine Excel Datei schreiben wollen, sind Sie bei diesem Artikel richtig.

Beispiele finden Sie in der angefügten Datei, QFSExcel.qft, die Daten aus der Excel-Datei "Data.xlsx" einliest. Kopieren Sie die beiden Dateien in das gleiche Verzeichnis und öffnen Sie QFSExcel.qft mit QF-Test um die Beispiele auszuführen.

Excel Daten lesen

1. Der Datentreiber-Knoten

Am einfachsten lassen sich Excel Daten über den 'Datentreiber' Knoten einlesen. Eine Excel Datei enthält eine bestimmte Anzahl Datensätze (ein Satz pro Zeile oder wahlweise pro Spalte). Der Datentreiber liest alle Datensätze ein und generiert so viele Schleifendurchläufte wie es Datensätze gibt. In jeder Schleife werden alle Testfälle im Testfallsatz, der den Datentreiber enthält, ausgeführt.

QF-Test Datentreiber

Als Ergebnis wird jeder Testfall einmal für jeden Datensatz ausgeführt.

'Datentreiber' Knoten können in 'Testfallsatz' und 'Testschritt' Knoten verwendet werden.

2. Der ‘Excel Datei’ Knoten allein

Wenn Sie die Excel Daten in einer anderen Art und Weise nutzen wollen, können Sie den 'Excel Datei' Knoten auch ohne Datentreiber verwenden. Damit werden die Daten in eine Gruppenvariable eingelesen.

Knoten in QF-Test

In obigem Beispiel werden die Excel Daten in die Gruppenvariable "data" eingelesen.

Mit der Prozedur "listAllMembersOfPropertyGroup" aus dem Package qfs.utils.variables der QF-Test Standardprozedurbibliothek qfs.qft können Sie alle Variablen aus der Gruppe anzeigen lassen.

Die Syntax um eine einzelne Variable in einer Gruppe anzusprechen ist ${Gruppenname:Variable}. Die Variablensyntax um eine Excel Zelle anzusprechen ist "Spaltenname.Index", bzw. "Zeilenname.Index". Für eine Zelle wäre also die komplette Syntax  ${Gruppenname:Spaltenname.Index}, wenn die Datensätze in Zeilen vorliegen.

Die Namen müssen in der ersten Zeile bzw. Spalte des Datenblattes angegeben werden. Die Indexzählung beginnt in der folgenden Zeile bzw. Spalte. Alle Indizes beginnen mit Null.

Excel data for QF-Test

Somit würde man die Zelle B4 über die Variable ${data:Test-case.2} referenzieren, mit "data’ als Gruppenname.

Der "Excel Datei" Knoten legt noch zwei weitere Variablen an, die die Anzahl der eingelesenen Datensätze, ${Gruppenname:size}, und die Gesamtzahl eingelesener Zeilen bzw. Spalten, ${Gruppenname:totalsize},  angeben. Die beiden Werten weichen nur voneinander ab, wenn es Leerzeilen bzw. -spalten zwischen den Datensätzen gibt.
Siehe Handbuch 'Excel Datei'.

Excel Dateien schreiben

1. Die Prozeduren im Beispiel

Im dritten Beispiel der beigefügten Testsuite wird eine bestehende Excel Datei in eine neue kopiert und ein Ergebnis in die Datensätze geschrieben.

 

Testfall MS Excel read/write

Die Prozedur "createWorkBookFromFile" liest die bestehende Excel Datei über das Excel API in eine Jython Variable ein. Die nächste Prozedur weist das Excel Blatt einer weiteren globalen Jython Variable zu. Eine Prozedur zeigt wie man das Excel API verwenden kann, um einzelne Zellen auszulesen, eine weitere wie man einen Wert in eine Zelle schreibt. Die letzte Prozedur schreibt die Daten in eine neue Excel Datei. Alle Prozeduren verwenden globale Jython Variablen um die komplexen Datenstrukturen wie das Excel Work book und das Datenblatt von einer Prozedur zur anderen zu übergeben.

2. Skripting Beispiel zum API

Ich habe das Excel API von Apache verwendet. Dies enthält noch sehr viel mehr Methoden. Also einfach das vorliegende Beispiel nehmen und nach Bedarf erweitern. Hilfreich fand ich die Seite poi.apache.org/spreadsheet/quick-guide. Die API Methoden können in QF-Test Server Skripten verwendet werden.

Erläuterung des Skripts in der ersten Prozedur:

QF-Test Excel API Apache

In Zeilen 1 und 2 werden die benötigten Module des Excel API (org.apache.poi.ss.usermodel) und der Dateiverwaltung (java.io) eingelesen.

In Zeile 4 wird "wrkbook" als globale Jython Variable definiert. Somit kann die Variable "wrkbook" auch in anderen Jython Skripten genutzt werden.

In Zeile 6 wird der übergebene Parameter "file"der Jython Variablen "filename" zugewiesen. Dies geschieht über die Methode "lookup" des QF-Test Moduls "rc".

In Zeilen 7 bis 10 wird die Excel Datei eingelesen. Falls sie nicht existiert, wird eine Exception geworfen.

In Zeile 12 wird das Excel Work book unter Verwendung einer Excel API Methode der Variablen "wrkbook" zugewiesen.

In Zeile 14 wird die Datei über die Java Methode "close" geschlossen.

Neuer Kommentar
( wird auf der Seite/Blog erscheinen )
( wird nicht auf der Seite/Blog erscheinen )

0 Kommentare

Sie haben Themenwünsche?
Wir freuen uns über Anregungen an blog@remove-this.qfs.de oder im Kommentar.

Benachrichtigung bei neuen Blog-Artikeln