JMeter use beanshell variable in HTTP Request

Suyash picture Suyash · Jul 26, 2012 · Viewed 55.5k times · Source

I'm an absolute rookie here (JAVA i mean), spent hours looking for a solution, now i just want to shoot myself.
I want to create a string in the beanshell assertion which is placed right above the HTTP Request.

  • In the beanshell i wrote:

    String docid="abcd";
    

    (in actuality i wish to concatenate a string with some variables)

  • In HTTP Request, send parameters i add ${docid}.

Answer

Aliaksandr Belik picture Aliaksandr Belik · Jul 26, 2012

In BeanShell Assertion description section you can find the following:

 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 to set jmeter variable in beanshell code (BeanShell Assertion sampler in your case) use the following:

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

or simply

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

and then you can refer it as ${docid}, as you've done in your HTTP Request.