2012-11-30 7 views
7

Kennt jemand Tools, die die Verwendung von Geb-Funktionstests für Leistungstests ermöglichen?Wie können Geb-Funktionstests für Leistungs-/Kapazitätstests verwendet werden?

Im Buch "Continuous Delivery" wird vorgeschlagen, dass Funktionstests für Leistungstests verwendet werden können. Sie fragen sich, ob jemand Ideen dafür hat, wie dies mit Gradle, Spock und Geb. implementiert werden könnte.

Um einen Kontext zu geben, verwenden wir derzeit ein JMeter-Skript, das eine Anzahl von Benutzern simuliert, die auf unserer Website nach zufälligen Links auf der Seite suchen. Dies ergibt eine relativ gute Abdeckung des mit dem Inhalt verknüpften Inhalts, jedoch werden einige Bereiche der Website, wie Suchvorgänge und angemeldete Funktionen, nicht berührt.

Vielen Dank im Voraus.

Antwort

0

Sie können die relevanten Geb Tests aus Ihrer Suite mehrmals auf mehreren Computern oder sogar mehrmals auf einem einzelnen Computer starten, indem Sie kopflose Treiber wie HtmlUnit oder PhantomJS verwenden. Das bringt Ihnen die Last für Kapazitätstests.

Natürlich können Sie das auch mit Datentabellen in where: Blöcken kombinieren und denselben Test mit verschiedenen Parametrierungen wiederholen. Ein sehr nettes Werkzeug zum Erzeugen von Daten für einen parametrisierten Test ist Spock Genesis, von dem ich annehme, dass es für Ihr Szenario nützlich wäre.


Update: Selbst wenn Ihr Test nicht parametrisiert ist Sie leicht mit @Unroll durch Kommentierung der Funktion Verfahren wiederholen und das Hinzufügen von nur where: Block wie folgt aus:

@Unroll 
def "test"() { 
    expect: 
    println n 

    where: 
    n << (1..100) 
} 

Et voilà - die Test läuft 100 mal.