2012-07-26 5 views
8

Ich bin ein absoluter Neuling hier (JAVA ich meine), verbrachte Stunden nach einer Lösung gesucht, jetzt will ich nur mich schießen.
Ich möchte eine Zeichenfolge in der Bean Shell-Assertion erstellen, die direkt über der HTTP-Anforderung platziert wird.JMeter Verwendung Beanshell Variable in HTTP-Request

  • Im Beanshell schrieb ich:

    String docid="abcd"; 
    

    (in Wirklichkeit möchte ich eine Zeichenfolge mit einigen Variablen verketten)

  • In HTTP-Request, i ${docid} hinzufügen Parameter senden.

Antwort

14

In BeanShell Assertion description section finden Sie folgendes:

vars - JMeterVariables - e.g. vars.get("VAR1"); vars.put("VAR2","value"); vars.putObject("OBJ1",new Object()); 
props - JMeterProperties (class java.util.Properties) - e.g. props.get("START.HMS"); props.put("PROP1","1234"); 

So jmeter Variable in Beanshell Code (Beanshell Assertion-Sampler in Ihrem Fall) verwenden Sie die folgende Einstellungen:

String docid = "abcd"; 
vars.put("docid",docid); 

oder einfach

vars.put("docid","abcd"); 

und dann können Sie es als $ {docid} bezeichnen, wie Sie es in Ihrer HTTP-Anfrage getan haben.

+0

Danke so sehr für Ihre Hilfe !! Wenn ich nicht zu viel frage, wie kann ich eine Variable nur in der BeanShell-Assertion verketten. Mein Ziel ist es, eine Schleife auszuführen und die Zeichenfolge zu verketten. Ich plante, diesen Sampler in einem Schleifenkontroller zu laufen und die Variable zu sich selbst mit kleinen Änderungen mit jedem Schleifenlauf zu verketten. – Suyash

+0

Ignoriere den obigen Kommentar, ich schaffte es, Verkettung und auch Schleifen zu machen, aber irgendwie bin ich nicht in der Lage, den Wert zu übergeben ein Beanshell-Sampler zum anderen. Ich habe versucht, die vars.get ("varname"), aber es funktioniert nicht. Es funktioniert nur für HTTP-Anfragetyp-Variablen. – Suyash

+0

Hm. Probieren Sie [Debug Sampler] (http://jmeter.apache.org/usermanual/component_reference.html#Debug_Sampler) mindestens aus, um die Problemvariable zwischen den Beanshell-Samplern zu verfolgen. Sie können auch props.get/.put auf die gleiche Weise verwenden - vielleicht wird das besser funktionieren. –

0

Wenn Sie Wert von einem Bohnenschale übergeben müssen Sampler zu einem anderen, sollten Sie Variablen verwenden.

vars.put("a", "something") 

In anderen Sampler, sollten Sie so etwas wie haben:

String otherSampler = vars.get("a") 

über das Debuggen Shell Samplers - Es ist nicht so einfach. Ich schlage vor, SampleResult-Objekt zu verwenden. Wie es zu benutzen, können Sie hier sehen Debugging Bean Shell Sampler