| 

.NET C# Java Javascript Exception

Testdaten generieren

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


Testdaten generieren

saurier - 02.09.2010 14:20
Hier gabs vor kurzem mal das Stichwort Testdaten. Irgendwie braucht sowas ja
jeder, und jeder bastelt sich da was eigenes zusammen. Ich habe mir mal
ein (Mini-)Plugin geschrieben um zufällig halbwegs sinnvolle Testdaten zu
generieren. Falls Interesse besteht, würde ich eine kleine Anleitung schreiben
und es dann hier verteilen.

Die Benutzung sieht etwa so aus (z.B. in Bootstrap)
        // 20 Kunden anlegen
         def range = 1..20
         range.each{ 
            new Kunde(vorname:sdataService.pick("first"),
                    nachname:sdataService.pick("last"),
                    ort:sdataService.pick("city")).save(flush:true)
         }
     }

Es sind einige Daten für Vornamen, Nachnamen, Telefon etc. vordefiniert, aus denen
dann mit pick() zufällig ausgewählt wird. Weitere Daten kann man sich ganz einfach
selbst anlegen.

Interesse?

Gruß,
Christian


Re: Testdaten generieren

milkyman - 02.09.2010 14:27
Ich weiß zwar noch nicht so ganz, ob ich eher zufällige oder ganz bestimmte Testdaten brauche, aber dein Ansatz hört sich ziemlich interessant an und sieht vor allem auch einfach in der Anwendung aus. Wenn du den Service zur Verfügung stellen willst, würde ich das gerne im Laufe der nächsten Woche mal versuchen.

Bye,
Horst


Re: Testdaten generieren

saurier - 03.09.2010 11:30
Hallo Horst,

ich hänge das Plugin hier einfach mal an. Vielleicht kannst Du, oder jemand anders, ja was
damit anfangen. Nach meiner Erfahrung findet man viele Fehler erst mit einer ausreichenden
Anzahl halbwegs realistischer Testdaten. Und dafür finde ich das äußerst praktisch.

Hier die Beschreibung, und das Plugin im Anhang:

Die Installation geht wie üblich mit:
grails install-plugin PfadZumZip/grails-sdata-0.1.zip

Bevor man den Service nutzen kann, muss dieser normal injiziert werden

def sdataService

Wer jetzt z.B. einen zufälligen Vornamen braucht bekommt diesen so:

def vorname = sdataService.pick("first")

Will man einen bestimmten Eintrag haben, etwa um immer genau definierte
Daten zu bekommen, kann man einfach einen Index mit angeben. Der Index darf
größer sein, als die Liste, da hier Modulo benutzt wird um einfacher mit
Schleifen arbeiten zu können:

def vorname = sdataService.pick("first",4)

Der erste Parameter von pick(), in diesem Fall "first", ist der Schlüssel zu
einer Liste von Daten, aus denen dann ein Wert zufällig gewählt wird.
Es gibt folgende vordefinierte Listen:

first - Vornamen international
last - Pseudo-Nachnamen, die es wahrscheinlich nicht gibt.
phone - Telefon-Nummern in verschiedenen Formaten
city - Städte, international
ort - Städte, deutsch
street - Straßen
mail - Mail-Adressen
blind - Blindtext-Schnipsel (lorem ipsum...)

Eigene Daten anzulegen ist ganz einfach. Wer z.B. ein paar bunte Autos
braucht, schreibt einfach:

sdataService.datamap["farbe"] = ['Rot','Gelb','Grün','Blau']
sdataService.datamap["automarke"] = ['Volvo','Fiat','Opel','BMW','VW','Honda']

def range = [1..20]
range.each { n ->
    // für feste Reihenfolge
    new Car(color:sdataService.pick("farbe",n),marke:sdataService.pick("automarke",n)).save()
    // für zufällige Reihenfolge
    new Car(color:sdataService.pick("farbe"),marke:sdataService.pick("automarke")).save()
}

Wer sich den Quellcode ansieht, wird feststellen, dass das Ganze extrem simpel ist.

Bei Fragen, einfach fragen :-)

Gruß,
Christian



Dateianhänge:
öffnen | Download - grails-sdata-0.1.zip (3.7 KB)


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "Testdaten generieren" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.