Databene Benerator
Name
Benerator
Homepage
http://databene.org/databene-benerator/
Lizenz
"Dual License" bestehend aus GPL Lizenz mit Einschränkungen und kommerzieller Nutzung.
Databene Benerator darf zu nicht kommerziellen Zwecken ohne Bedenken genutzt werden.
Lediglich das Verkaufen von Trainingsessions o.ä. zum Benerator sind verboten.
Untersuchte Version
0.7.7
Letzter Untersuchungszeitpunkt
03.11.12
Kurzbeschreibung
Benerator kann dazu genutzt werden, Testdaten in großer Menge zu erstellen. Es bietet dabei zahlreiche Möglichkeiten bei der Erstellung/Speicherung der Daten.
Fazit
Das Tool ist sehr gut für alle Projekte geeignet, jedoch bietet sich eine Nutzung eher bei größeren Projekten an, bei denen eine große Zahl an Testdaten benötigt werden.
Allgemein lässt sich sagen dass der Benerator eine einfache und schnelle Möglichkeit ist, zufällige und viele Testdaten zu erstellen.
Einsatzgebiete
Generell kann das Werkzeug in allen Projekten eingesetzt werden. Gerade in größeren Projekten, bei denen viele Testdaten benötigt werden kann dieses Tool viel Arbeit beim Erstellen von Testdaten abnehmen.
Einsatzumgebungen
Es gibt neben der Standalone-Variante noch ein Maven-Plugin.
Leider ist die Entwicklung eines GUI von Benerator (ein Plugin für Eclipse, "Benclipse") eingestellt worden (siehe: http://databene.org/databene-benerator/faq/81-benerator-gui-available.html).
Installation
Die Installation ist relativ aufwändig, doch durch die gute Installationsanleitung (siehe: http://databene.org/databene-benerator/112-installing-the-benerator-distribution.html)
Es müssen bei Windows Umgebungsvariablen angepasst werden und die Software unterscheidet sich in der Installation zwischen Windows/Linux/Mac.
Dokumentation
Auf der Benerator-Projektseite lässt sich eine sehr ausführliche PDF-Dokumentation finden (siehe: http://databene.org/download/databene-benerator-manual-0.7.6.pdf)
Wartung der Projektseite
Die Dokumentation wurde zuletzt im Mai 2012 herausgegeben, sie scheint also noch recht aktuell zu sein.
Der letzte Download des Benerators ist die Version 0.7.7, die Dokumentation ist zur Versionsnummer 0.7.6 vom Mai 2012. Das lässt darauf schließen, dass auch nach Mai 2012 noch am Projekt gearbeitet wurde.
Nutzergruppen und Support
Es gibt keinen expliziten Support, jedoch kann der Entwickler Volker Bergmann kontaktiert werden.
Intuitive Nutzbarkeit
Die Dokumentation ist sehr gut geschrieben und lässt auch unerfahrene Nutzer leicht in die Materie einsteigen.
Automatisierung
Das Ziel des Benerators ist eine automatisierte Testdatenerstellung. Die Testdaten können nach Generierung unterschiedlich exportiert werden (Beispiele: .csv, JDBC).
Einführendes Beispiel
In diesem kleinen Beispiel sollen Lottozahlen generiert werden.
Nach der korrekten Installation vom Benerator wird unter "C:/" eine Datei mit dem Namen benerator.xml und folgendem Inhalt erstellt:
<?xml version="1.0" encoding="iso-8859-1"?>
<setup>
<generate type="message" count="6" consumer="ConsoleExporter" />
<attribute name="lotto" type="int" pattern="[0-4][1-9]{1}" />
</generate>
</setup>
Erklärung des Quellcodes:
Zeile 1: Zuweisung der xml-Version und -Kodierung
Zeile 3: Es wird ein Datensatz mit der Quantität 6 (hier: 6 aus 49), dem Typ Nachricht und der Konsole als Ausgabe definiert
Ab Zeile 4: Hier werden die einzelnen Attribute eines Datensatzes definiert. In diesem Fall benötigt ein Attribut, da 6*1 Zahl aus 49 benötigt werden. Mit "pattern" wird der Wertebereich für das jeweilige Attribut angegeben. Hierbei ist zu beachten, dass es sich um die Ziehmethode "sampling with replacement" (also "Ziehen MIT Zurücklegen") handelt, also Zahlen auch öfter als einmal gezogen werden können. Deshalb ist das Beispiel nicht komplett realistisch.
Nun muss in der Konsole (Start -> Ausführen -> "cmd") nach "C:/" navigiert werden und dann mit dem Befehl "benerator" ausgeführt werden.
Dies sollte dann folgendermaßen aussehen:
Es sind nun 6 Lottozahlen sichtbar (hier: 35,45,33,1,3,33).
Weiterführendes Beispiel
In diesem Beispiel soll das obige Beispiel um einen csv-Export und eine Quantität von 1000 Datensätzen erweitert werden.
Dazu kann folgender Code verwendet werden:
<?xml version="1.0" encoding="iso-8859-1"?>
<setup>
<bean id="csv_datei" class="CSVEntityExporter">
<property name="uri" value="lotto.csv" />
<property name="columns" value="lotto1,lotto2,lotto3,lotto4,lotto5,lotto6" />
</bean>
<generate type="message" count="1000" consumer="csv_datei" />
<attribute name="lotto1" type="string" pattern="[0-4][1-9]{1}" />
<attribute name="lotto2" type="string" pattern="[0-4][1-9]{1}" />
<attribute name="lotto3" type="string" pattern="[0-4][1-9]{1}" />
<attribute name="lotto4" type="string" pattern="[0-4][1-9]{1}" />
<attribute name="lotto5" type="string" pattern="[0-4][1-9]{1}" />
<attribute name="lotto6" type="string" pattern="[0-4][1-9]{1}" />
</generate>
</setup>
Erklärung des Quellcodes
Es wird in der Erklärung lediglich auf die wichtigsten Änderungen zum einfachen Beispiel eingegangen.
Zeile 3: Hier wird der CSV-Export deklariert. Als Klasse wird der "CSVEntityExporter" angegeben.
Zeile 4: Per "uri" die Datei angegeben, in die die Werte exportiert werden sollen.
Zeile 5: Über die "colums" werden die verschiedenen Spalten der csv-Datei angegeben.
Zeile 7: Es wird nun als "consumer" nicht mehr die Konsole sondern die die id des oben erstellten "beans" (hier "csv_datei") angegeben.
Die Ausgabe der Konsole sollte dann folgendermaßen aussehen:
Wichtig ist hierbei der Hinweis "Created a totel of 1000 entities [...]".
Nun wird eine (sofern noch nicht vorhanden) .csv-Datei mit dem im Code angegebenen namen "lotto.csv" erstellt und mit den Werten gefüllt.
Diese hat dan folgenden Inhalt:
Es lässt sich sehen, dass relativ einfach viele Testdaten erstellt werden können. In dem pdf-manual (http://databene.org/download/databene-benerator-manual-0.7.6.pdf) sind alle weiteren Attribute sehr gut beschrieben.
Literatur
PDF-Manual: http://databene.org/download/databene-benerator-manual-0.7.6.pdf
Zurück zur Werkzeugübersicht
Zurück zur CSI-Hauptseite