2017-10-25 3 views
2

Problembeschreibung. Satz der Transaktion (1000+) und müssen aufgerufen oder wiederverwendet werden (ohne in verschiedenen if- oder Switch-Controllern zu duplizieren), indem von der bohnenschale oder jsr233 aufgerufen wird. In SoapUI haben wir groovy Skript-Option, um die sequenzielle Ausführung zu brechen und die Steuerung an jede Anfrage mit dem folgenden Befehl umzuleiten.Aufruf des Transaktionscontrollers oder HTTP-Samplers von Bean shell/JSR223

und die gleiche Funktionalität in Loadrunner (Laufzeiteinstellung mit unterschiedlichen Aktionen) und NeoLoad verfügbar. Verfügen wir über eingebaute Objekte oder Funktionen, die per Transaktion oder Sampler-Namen von JSR223/BeanShell ausgeführt werden können, ohne if/while/switch controller?

Zum Beispiel.

In Skript 10 Transaktionen gibt es und dasselbe Skript für verschiedene Szenario zu verwenden, indem Sie eine Jmeter-Eigenschaft während der Ausführung über Jenkins oder Eingabeaufforderung festlegen.

__P(Flow,RoomBooking) 

dann von JSR233/Sampler Beanshell

if(Flow=="RoomBooking"){ 

invoke Login 

invoke BookRoom 

invoke Logout 

} else if(Flow=="RoomBookingNBookItinerary") 

invoke Login 

invoke BookRoom 

invoke BookItinerary 

invoke Logout 

}else if(Flow=="RoomBookingNcancel") 

invoke Login 

invoke BookRoom 

Invoke ParkTicket 

invoke CancelRoom 

invoke Logout 

}Like different flows with different thread and throughput 

In diesem Fall i mischen und verschiedene Strömungen passen und und gleiche Skript für unterschiedliche Strömungs wiederzuverwenden. Dies würde dazu beitragen, den Aufwand für die Nachbearbeitung von Skripts bei Anwendungsänderungen zu reduzieren.

Vielen Dank :-)

+0

Ich antwortete, wenn mein Verständnis Ihrer Frage nicht klar ist, zeigen Sie bitte ein Beispiel Testplan in JMeter und SoapUI und wie es in SoapUI funktionieren würde –

+0

Modul Controller kann wenn Aussage also warum nicht verwenden? – user7294900

Antwort

1

Sie haben recht, JMeter hat überhaupt keinen JSR 223 Logic Controller,

Ich denke, dass es auch die, wenn Controller zu ändern helfen kann,

Ich schlage vor, Sie öffnen eine enhancement zu JMeter Produkt (wählen Schweregrad: Enhancement)

EDIT

Es gibt eine neue Bug 61711 - Add JSR223 Logic Controller Sie können vote auf.

0

Sie können es vielleicht tun mit Switch Controller

Test Plan

Jeder Schritt ein Transaction Controller

wird in einem JSR223 Sampler werden Sie gesetzt und die Schritt, den Sie wünschen:

JSR223 Sampler

+0

Es würde nicht helfen, das ist y ich ohne ohne angegeben/switch/while Controller und haben mehr als 1000 Transaktionen. Ich möchte nur die lineare Ausführung brechen und goto mit Hilfe von groovy oder beanshell –

+0

verwenden In diesem Fall können Sie nur mit einem Beispiel illustrieren, indem Sie Ihre Frage bearbeiten? –

1

Wenn Sie nach einer Möglichkeit suchen, einem vorherigen Sampler einer weiteres Mal von dem JSR223 Script ausführt es so etwas wie sein würde:

ctx.getPreviousSampler().sample(null) 

wo ctx steht für JMeterContext für alle verfügbaren Methoden und Felder.

Demo:

JSR223 Execute Sampler One more Time


jedoch eine bessere Idee wäre mit JMeter der Module Controller, die woanders einen Teil JMeter Testplan ermöglicht die Ausführung, auf diese Weise Sie eine Form von goto statement in JMeter

implementieren können
Verwandte Themen